I add 2nd relay driver TPIC6B595DWRG4 in my project and I want to drive the relay on 2nd chip with my existing sketch, but I don’t have much knowledge about shift register.
I need help to understand how this shift register works and update the sketch.
Below Sketch working fine for 08 relays only.
int latchPin = 10; // (11) ST_CP [RCK] on 74HC595
int clockPin = 9; // (9) SH_CP [SCK] on 74HC595
int dataPin = 12; // (12) DS [S1] on 74HC595
const int OE = 11;
byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void setup()
{
pinMode(OE, OUTPUT);
digitalWrite(OE, LOW);
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
updateShiftRegister(); bitSet(leds, 0);
delay(1000);
updateShiftRegister(); bitClear(leds, 0);
delay(1000);
updateShiftRegister(); bitSet(leds, 1);
delay(1000);
updateShiftRegister(); bitClear(leds, 1);
delay(1000);
updateShiftRegister(); bitSet(leds, 2);
delay(1000);
updateShiftRegister(); bitClear(leds, 2);
delay(1000);
updateShiftRegister(); bitSet(leds, 3);
delay(1000);
updateShiftRegister(); bitClear(leds, 3);
delay(1000);
updateShiftRegister(); bitSet(leds, 4);
delay(1000);
updateShiftRegister(); bitClear(leds, 4);
delay(1000);
updateShiftRegister(); bitSet(leds, 5);
delay(1000);
updateShiftRegister(); bitClear(leds, 5);
delay(1000);
updateShiftRegister(); bitSet(leds, 6);
delay(1000);
updateShiftRegister(); bitClear(leds, 6);
delay(1000);
updateShiftRegister(); bitSet(leds, 7);
delay(1000);
updateShiftRegister(); bitClear(leds, 7);
delay(1000);
}



