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: Single Digit Seven Segment Now we learn how a single digit display works. Please use the provided code below.

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

*/
/*
file:  Lesson_74HC595_1_SevenSegment
This is part of the code to learn how to run multiple seven segment displays using
74HC595 shift register IC.

Mar 16, 2024

*/
const int CLOCK_SHCP_PIN11 = 12;//SHcp pin of 74HC595 
const int CLATCH_STCP_PIN12 = 11;//STcp pin of 74HC595 
const int DATA_DS_PIN14 = 10;//ds pin of 74HC595 

byte digits[] =   {B00111111, //0
                   B00000110, //1
                   B01011011, //2
                   B01001111, //3
                   B01100110, //4
                   B01101101, //5
                   B01111101, //6
                   B10000111, //7
                   B01111111, //8
                   B01101111  //9
                  };

void setup ()
{
  //set pins to output
  pinMode(CLATCH_STCP_PIN12,OUTPUT);
  pinMode(CLOCK_SHCP_PIN11 ,OUTPUT);
  pinMode(DATA_DS_PIN14,OUTPUT);
}
void loop()
{
  for(int num = 0; num <=8; num++)
  {
    digitalWrite(CLATCH_STCP_PIN12,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DATA_DS_PIN14,CLOCK_SHCP_PIN11 ,MSBFIRST,digits[num]);
    //return the latch pin high to signal chip that it 
    //no longer needs to listen for information
    digitalWrite(CLATCH_STCP_PIN12,HIGH); //pull the ST_CPST_CP to save the data
    delay(2000); //wait for a second
  }
}