// By D.Weerasinghe @COTM
// You are not allowed to change the wiring.
// test script is wirtten to identify the pins connected to each segment
// make a program to display 00 to 99, 100 numbers in the SSDs
// You may copy from the previous programs and change them as required.
const int dataPin1 = 2; /* DS */
const int clockPin1 = 3; /* SHCP */
const int latchPin1 = 4; /* STCP */
const int dataPin2 = 5; /* DS */
const int clockPin2 = 6; /* SHCP */
const int latchPin2 = 7; /* STCP */
int patternA = 0b00000001;
int patternB = 0b10000000;
int patternA8 = 0b01111111;
int patternA0 = 0b01110111;
void setup() {
pinMode(dataPin1, OUTPUT);
pinMode(clockPin1, OUTPUT);
pinMode(latchPin1, OUTPUT);
pinMode(dataPin2, OUTPUT);
pinMode(clockPin2, OUTPUT);
pinMode(latchPin2, OUTPUT);
// Test SSD connections
for (int i=0; i < 8; i++){
digitalWrite(latchPin1, LOW);
digitalWrite(latchPin2, LOW);
shiftOut(dataPin1, clockPin1, LSBFIRST, patternA);
shiftOut(dataPin2, clockPin2, LSBFIRST, patternB);
digitalWrite(latchPin1, HIGH);
digitalWrite(latchPin2, HIGH);
patternA = patternA << 1;
patternB = patternB >> 1;
delay(10);
}
digitalWrite(latchPin1, LOW);
shiftOut(dataPin1, clockPin1, LSBFIRST, patternA8);
digitalWrite(latchPin1, HIGH);
delay(100);
digitalWrite(latchPin1, LOW);
shiftOut(dataPin1, clockPin1, LSBFIRST, patternA0);
digitalWrite(latchPin1, HIGH);
}
void loop() {
/*
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(500); */
//pattern = ~pattern; // Invert the pattern
}