#define clock 13 #define data 12 #define latch 10 boolean states[8]; void setup() { pinMode(clock, OUTPUT); pinMode(data, OUTPUT); pinMode(latch, OUTPUT); digitalWrite(latch, HIGH); cleanreg(); } void loop() { sendbyte(1); } void sendbyte(byte value){ digitalWrite(latch, LOW); shiftOut(data, clock, LSBFIRST, value); digitalWrite(latch, HIGH); } void sendpin(int pin, boolean state){ pin--; states[pin]=state; byte value = 0; byte add = 1; for(int i=0; i<8; i++){ if(states[i]==HIGH) value+=add; add*=2; } digitalWrite(latch, LOW); shiftOut(data, clock, LSBFIRST, value); digitalWrite(latch, HIGH); } void cleanreg(){ for(int i=0; i<8; i++) states[i]=LOW; digitalWrite(latch, LOW); shiftOut(data, clock, LSBFIRST, 0); digitalWrite(latch, HIGH); }