/*
Using 74hc595 to connect to led bar graph as fill meter
Inspired by Uri Shaked's 74HC595 Arduino Shift Register example for Wokwi
based on his layout and starter code
John Clark
*/
const int dataPin = 2; /* DS */
const int clockPin = 3; /* SHCP */
const int latchPin = 4; /* STCP */
const int pattern7_7 = 0b01111111;
const int pattern6_7 = 0b00111111;
const int pattern5_7 = 0b00011111;
const int pattern4_7 = 0b00001111;
const int pattern3_7 = 0b00000111;
const int pattern2_7 = 0b00000011;
const int pattern1_7 = 0b00000001;
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
Serial.begin(9600);
}
int pattern = 0b11111111;
void loop() {
digitalWrite(latchPin, LOW);
Serial.println("Level 1/7");
shiftOut(dataPin, clockPin, LSBFIRST, pattern1_7);
digitalWrite(latchPin, HIGH);
delay(1000);
digitalWrite(latchPin, LOW);
Serial.println("Levek 2/7");
shiftOut(dataPin, clockPin, LSBFIRST, pattern2_7);
digitalWrite(latchPin, HIGH);
delay(1000);
digitalWrite(latchPin, LOW);
Serial.println("Level 3/7");
shiftOut(dataPin, clockPin, LSBFIRST, pattern3_7);
digitalWrite(latchPin, HIGH);
delay(1000);
digitalWrite(latchPin, LOW);
Serial.println("Level 4/7");
shiftOut(dataPin, clockPin, LSBFIRST, pattern4_7);
digitalWrite(latchPin, HIGH);
delay(1000);
digitalWrite(latchPin, LOW);
Serial.println("Level 5/7");
shiftOut(dataPin, clockPin, LSBFIRST, pattern5_7);
digitalWrite(latchPin, HIGH);
delay(1000);
digitalWrite(latchPin, LOW);
Serial.println("Level 6/7");
shiftOut(dataPin, clockPin, LSBFIRST, pattern6_7);
digitalWrite(latchPin, HIGH);
delay(1000);
digitalWrite(latchPin, LOW);
Serial.println("Level 7/7");
shiftOut(dataPin, clockPin, LSBFIRST, pattern7_7);
digitalWrite(latchPin, HIGH);
delay(1000);
}