/*
16 bit Shift Register Demo
*/
// pin definitions
const int CLOCK_PIN = 12;
const int LATCH_PIN = 11;
const int DATA_PIN = 10;
void writeShiftValue(int number) {
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, number);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, number >> 8);
digitalWrite(LATCH_PIN, HIGH);
}
void setup() {
Serial.begin(115200);
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
}
void loop() {
for (int i = 0; i < 16; i++) {
writeShiftValue(1 << i);
delay(250);
}
writeShiftValue(0xAAAA);
delay(1000);
writeShiftValue(0x5555);
delay(1000);
}