A seven segment display is typically used to display numbers from 0-9. It consists of 7 bar segments and a dot( 8 Segments). They are numbered A to F and DP for the dot or decimal place. There are 2 types of 7 Segment display
- Common anode
- Common cathode
Seven Segments are labelled as below.
For more detail on 7 segment display refer my blog post on it here.
To display number we need to turn on the correct segments as shown below:
0- ABCDEF 1- BC 2- ABGED 3- ABCDG 4- BCFG 5- ACDFG 6- ACDEFG 7- ABC 8- ABCDEFG 9- ABCFG
List of Parts needed
- Common cathode seven segment LED display
- 470 Ohm resistors – 7 nos
- Arduino UNO
Schematic diagram:
Below is the code for the one digit counter
//Pins for seven segment int sega = 1; int segb = 2; int segc = 3; int segd = 4; int sege = 5; int segf = 6; int segg = 7; int dispa = 8; int dispb = 9; void setup() { // Setup code to run once pinMode(sega,OUTPUT); pinMode(segb,OUTPUT); pinMode(segc,OUTPUT); pinMode(segd,OUTPUT); pinMode(sege,OUTPUT); pinMode(segf,OUTPUT); pinMode(segg,OUTPUT); pinMode(dispa,OUTPUT); pinMode(dispb,OUTPUT); } void loop() { // put your main code here, to run repeatedly: for(int count=0;count<10;count++) { digitalWrite(sega,LOW); digitalWrite(segb,LOW); digitalWrite(segc,LOW); digitalWrite(segd,LOW); digitalWrite(sege,LOW); digitalWrite(segf,LOW); digitalWrite(segg,LOW); if(count==0){ digitalWrite(sega,HIGH); digitalWrite(segb,HIGH); digitalWrite(segc,HIGH); digitalWrite(segd,HIGH); digitalWrite(sege,HIGH); digitalWrite(segf,HIGH); } if(count==1){ digitalWrite(segb,HIGH); digitalWrite(segc,HIGH); } if(count==2){ digitalWrite(sega,HIGH); digitalWrite(segb,HIGH); digitalWrite(segg,HIGH); digitalWrite(sege,HIGH); digitalWrite(segd,HIGH); } if(count==3){ digitalWrite(sega,HIGH); digitalWrite(segb,HIGH); digitalWrite(segc,HIGH); digitalWrite(segd,HIGH); digitalWrite(segg,HIGH); } if(count==4){ digitalWrite(segb,HIGH); digitalWrite(segc,HIGH); digitalWrite(segf,HIGH); digitalWrite(segg,HIGH); } if(count==5){ digitalWrite(sega,HIGH); digitalWrite(segc,HIGH); digitalWrite(segd,HIGH); digitalWrite(segf,HIGH); digitalWrite(segg,HIGH); } if(count==6){ digitalWrite(sega,HIGH); digitalWrite(segc,HIGH); digitalWrite(segd,HIGH); digitalWrite(sege,HIGH); digitalWrite(segf,HIGH); digitalWrite(segg,HIGH); } if(count==7){ digitalWrite(sega,HIGH); digitalWrite(segb,HIGH); digitalWrite(segc,HIGH); } if(count==8){ digitalWrite(sega,HIGH); digitalWrite(segb,HIGH); digitalWrite(segc,HIGH); digitalWrite(segd,HIGH); digitalWrite(sege,HIGH); digitalWrite(segf,HIGH); digitalWrite(segg,HIGH); } if(count==9){ digitalWrite(sega,HIGH); digitalWrite(segb,HIGH); digitalWrite(segc,HIGH); digitalWrite(segf,HIGH); digitalWrite(segg,HIGH); } delay(1000); } }