int STROBE = 9; // latch int DATAOUT = 10; int DATAOUT17BIT = 12; // we only use two shift regs for 16 bits. for 17th bit, we use digital out int CLOCK = 11; int DATAINWIDTH = 8; int DATAINPINS[] = {2,3,4,5,6,7,8,13}; int addr = 0; int input = 0; void sendDataOut(int value) { shiftOut(DATAOUT, CLOCK, LSBFIRST, (value & 0x000FF) ); //first byte shiftOut(DATAOUT, CLOCK, LSBFIRST, (value & 0x0FF00) ); //second byte // We only have two shift regs so to deal with the 17th bit: digitalWrite(DATAOUT17BIT, (value & 0x10000) ); //highest bit // LATCH: digitalWrite(STROBE, HIGH); delayMicroseconds(10); digitalWrite(STROBE, LOW); } int readDataIn() { int ret = 0x00000; int in = 0; for (int i=0; i>8)); digitalWrite(STROBE, HIGH); delayMicroseconds(10); digitalWrite(STROBE, LOW); } */