0 to 9 counter using arduino nano

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 –

  1. Arduino nano
  2. 7 segment display (common cathode)
  3. Bread board
  4. Arduino nano cable
  5. 220 Ohm resister
  6. 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 –

7 segment display

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 program
int 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 mode
pinMode (segmentB,OUTPUT); //sets pin 3 in output mode
pinMode (segmentC,OUTPUT); //sets pin 4 in output mode
pinMode (segmentD,OUTPUT); //sets pin 5 in output mode
pinMode (segmentE,OUTPUT); //sets pin 6 in output mode
pinMode (segmentF,OUTPUT); //sets pin 8 in output mode
pinMode (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

Share This Post

Leave a Comment