Well I think i got it. It took some time, two weeks of assembling, analyzing, and disassembling. I think I now have 4 74HC595 ICs working. See photo below. May help someone. Now onto the code. I'd like to send out a digit (1) o a certain location and I have no idea where to start. The idea being that I want to trip solenoids one at a time, in a certain pattern. Once the pin has been set high on the first solenoid, I'd like to trip, then I need to make sure the rest of the digitis shifted in are zeros.
Below is my code, or something that used to look like what someone already posted before I butchered it.
const int SER =11;
const int LATCH =9;
const int CLK =12;
void setup() {
// Set pinmodes as outputs
pinMode (SER, OUTPUT);
pinMode (LATCH, OUTPUT);
pinMode (CLK, OUTPUT);
digitalWrite(LATCH, HIGH);
digitalWrite(LATCH, LOW);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
digitalWrite(LATCH, HIGH);
delay(250);
digitalWrite(LATCH, LOW);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
digitalWrite(LATCH, HIGH);
delay(250);
digitalWrite(LATCH, LOW);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
digitalWrite(LATCH, HIGH);
delay(250);
digitalWrite(LATCH, LOW);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
digitalWrite(LATCH, HIGH);
delay(250);
digitalWrite(LATCH, LOW);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
shiftOut(SER, CLK, MSBFIRST, B11111111);
digitalWrite(LATCH, HIGH);
delay(250);
digitalWrite(LATCH, LOW);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
shiftOut(SER, CLK, MSBFIRST, B00000000);
digitalWrite(LATCH, HIGH);
delay(250);
}
void loop()
{
}
The above is more of a proof of concept. Getting in data to the shift registers.
This took so long to accomplish. What a tedious business this electronics business!
Best,
Tony