// DIP Switch selector de modalidad
const int DSdataPin = 15; /* Q7 */
const int DSclockPin = 16; /* CP */
const int DSlatchPin = 17; /* PL */
const int DSclockEnablePin = 18; /* CE */
const int startButton = 19;
void setup() {
// put your setup code here, to run once:
pinMode(DSdataPin, INPUT);
pinMode(DSclockPin, OUTPUT);
pinMode(DSclockEnablePin, OUTPUT);
pinMode(DSlatchPin, OUTPUT);
}
uint8_t scanDS(void) {
uint8_t dataIn = 0;
digitalWrite(DSlatchPin, LOW); // LD# - Leemos estado.
delayMicroseconds(5);
digitalWrite(DSlatchPin, HIGH); // SH - Cambiamos a shifting.
delayMicroseconds(5);
digitalWrite(DSclockPin, HIGH);
digitalWrite(DSclockEnablePin, LOW);
dataIn = shiftIn(DSdataPin, DSclockPin, LSBFIRST);
digitalWrite(DSclockEnablePin, HIGH);
Serial.println(dataIn, BIN);
return dataIn;
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(startButton) == HIGH) {
scanDS();
}
}