Robojax

Lesson 110: Build up to 8 digits Seven Segment display using 74HC595 Shift Register | Robojax

Lesson 110: Build up to 8 digits Seven Segment display using 74HC595 Shift Register | Robojax

Please select other codes for this lecture from the links below.

Related or required files and link to this lesson

LED Seven Segment Display using 74HC595

This vode is to introduct the 74HC595 to driver 8 LED lights and turn them ON from 0 to 8 one by one while keeping each LED ON.

Projects in this video using 74HC595

In Project 2 we control direction of rotation of stepper motor using keyboard on our computer via serial monitor.

Timing of chapters in the video

00:00 Start
2:19 Code-1 Walking light
4:02 code-1: demonstration
4:49 connecting seven segment to walking light code
6:19 Code-2 single digit display
8:13 code-2: wiring
12:20 code-2: code explained
14:35 code-2: demo
15:28 code-2: two digits wiring (main wiring)
24:25 code-3: two digits Seven Segment display using 74HC595 code
29:06 How to digits display works
31:47 Code-4: Up to 8 digits Seven Segment display using 74HC595
36:16 All digits code explained
50:43 All digits demo
55:38 two display in parallel
56:30 Common Anode/Common Cathode test
57:32 Code-5: Adjusting delay with potentiometer
1:00:42 Code-6: Pot voltage
1:03:36 driving display with transistor
1:04:01 wiring explained
1:05:29 demo: transistor driver

 /*
Build up to 8 digits Seven Segment display using 74HC595 Shift Register 
Watch full video instruction on YouTube https://youtu.be/xhPXovgFhso
written and explained by Ahmad Shamshiri on https://youtube.com/@robojax

*/
/*
https://docs.sunfounder.com/projects/3in1-kit-v2/en/latest/basic_project/ar_shiftout_led.html
*/
const int DATA_DS_PIN14    = 10; //Pin connected to DATA_DS_PIN14 of 74HC595 
const int LATCH_STCP_PIN12 = 11;//Pin connected to ST_CP of 74HC595
const int CLOCK_SHCP_PIN11 = 12;//Pin connected to SH_CP of 74HC595 

int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};

void setup ()
{
  Serial.begin(9600);
  Serial.println("Code 0: 74HC595 2 digit display driver");
  pinMode(LATCH_STCP_PIN12 ,OUTPUT);
  pinMode(CLOCK_SHCP_PIN11,OUTPUT);
  pinMode(DATA_DS_PIN14,OUTPUT);
}
void loop()
{
  for(int num = 0; num <=8; num++)
  {
    digitalWrite(LATCH_STCP_PIN12 ,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DATA_DS_PIN14,CLOCK_SHCP_PIN11,MSBFIRST,datArray[num]);
    //return the latch pin high to signal chip that it 
    //no longer neeDATA_DS_PIN14 to listen for information
    digitalWrite(LATCH_STCP_PIN12 ,HIGH); //pull the ST_CPST_CP to save the data
    delay(2000); //wait for a second
  }
}