int latchPin = 8; int clockPin = 12; int dataPin = 11; byte data = 0; void setup() { pinMode(latchPin, OUTPUT); } void loop() { blinkAll_2Bytes(1,500); for (int j = 0; j < 8; j++) { digitalWrite(latchPin, 0); lightShiftPinA(7-j); digitalWrite(latchPin, 1); delay(1000); } for (int j = 0; j < 8; j++) { digitalWrite(latchPin, 0); lightShiftPinB(j); digitalWrite(latchPin, 1); delay(1000); } } void lightShiftPinA(int p) { int pin; pin = 1<< p; shiftOut(dataPin, clockPin, pin); } void lightShiftPinB(int p) { int pin; pin = 1; for (int x = 0; x < p; x++) { pin = pin * 2; } shiftOut(dataPin, clockPin, pin); } void shiftOut(int myDataPin, int myClockPin, byte myDataOut) { int i=0; int pinState; pinMode(myClockPin, OUTPUT); pinMode(myDataPin, OUTPUT); digitalWrite(myDataPin, 0); digitalWrite(myClockPin, 0); for (i=7; i>=0; i--) { digitalWrite(myClockPin, 0); if ( myDataOut & (1<