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.