In this tutorial, we are going to make a 0 to 9 counter using arduino nano and a 7 segment display. The display will count the numbers from 0 – 9 in a loop mode.
Components required
The hardware requirements for this project are –
- Arduino nano
- 7 segment display (common cathode)
- Bread board
- Arduino nano cable
- 220 Ohm resister
- M to M jumper wires
7 segment display
A 7 segment display is made up of 7 led’s named as a, b, c, d, e, f & g. These led’s can be operated individually to display any numeric values between 0 – 9. The pin diagram is show in the picture below –
Circuit connection
The circuit connection should be made as discussed below-
nano pins |
Display pins |
D2 |
A |
D3 |
B |
D4 |
C |
D5 |
D |
D6 |
E |
D7 |
F |
D8 |
G |
GND |
GND |
Connect the following pins of Arduino nano with display as mentioned in the above table.
Arduino code
The Arduino code for 0 to 9 counter using arduino nano.
int dt=1000; // for chnging delay of programint segmentA=2;int segmentB=3;int segmentC=4;int segmentD=5;int segmentE=6;int segmentF=7;int segmentG=8;
void setup(){pinMode (segmentA,OUTPUT); //sets pin 2 in output modepinMode (segmentB,OUTPUT); //sets pin 3 in output modepinMode (segmentC,OUTPUT); //sets pin 4 in output modepinMode (segmentD,OUTPUT); //sets pin 5 in output modepinMode (segmentE,OUTPUT); //sets pin 6 in output modepinMode (segmentF,OUTPUT); //sets pin 8 in output modepinMode (segmentG,OUTPUT); //sets pin 8 in output mode
}
void loop(){ //print0 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,HIGH); digitalWrite(segmentE,HIGH); digitalWrite(segmentF,HIGH); digitalWrite(segmentG,LOW);
delay(dt);//print1 digitalWrite(segmentA,LOW); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,LOW); digitalWrite(segmentE,LOW); digitalWrite(segmentF,LOW); digitalWrite(segmentG,LOW);
delay(dt);//print2 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,LOW); digitalWrite(segmentD,HIGH); digitalWrite(segmentE,HIGH); digitalWrite(segmentF,LOW); digitalWrite(segmentG,HIGH);
delay(dt);//print3 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,HIGH); digitalWrite(segmentE,LOW); digitalWrite(segmentF,LOW); digitalWrite(segmentG,HIGH);
delay(dt);//print4 digitalWrite(segmentA,LOW); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,LOW); digitalWrite(segmentE,LOW); digitalWrite(segmentF,HIGH); digitalWrite(segmentG,HIGH);
delay(dt);//print5 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,LOW); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,HIGH); digitalWrite(segmentE,LOW); digitalWrite(segmentF,HIGH); digitalWrite(segmentG,HIGH);
delay(dt);//print6 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,LOW); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,HIGH); digitalWrite(segmentE,HIGH); digitalWrite(segmentF,HIGH); digitalWrite(segmentG,HIGH);
delay(dt);//print7 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,LOW); digitalWrite(segmentE,LOW); digitalWrite(segmentF,LOW); digitalWrite(segmentG,LOW);
delay(dt);//print8 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,HIGH); digitalWrite(segmentE,HIGH); digitalWrite(segmentF,HIGH); digitalWrite(segmentG,HIGH);
delay(dt);//print9 digitalWrite(segmentA,HIGH); digitalWrite(segmentB,HIGH); digitalWrite(segmentC,HIGH); digitalWrite(segmentD,HIGH); digitalWrite(segmentE,LOW); digitalWrite(segmentF,HIGH); digitalWrite(segmentG,HIGH);
delay(dt);}
To understand why the pins are set high or low to print specific number, go through BCD to 7 segment decoder.
Project video
Author
Akash Sharma