#define A 25
#define B 26
#define c 27
#define D 14
#define E 12
#define F 18
#define G 19
#define DP 9 // decimal
#define common_cathode 0
#define common_anode 1
bool segMode = common_cathode; // set this to your segment type, my segment is common_cathode
int seg[] {A,B,c,D,E,F,G,DP}; // segment pins
byte chars = 10;//x value in the array "Chars"
byte Chars[10][9] {
{'0',1,1,1,1,1,1,0,0},//0
{'1',0,1,1,0,0,0,0,0},//1
{'2',1,1,0,1,1,0,1,0},//2
{'3',1,1,1,1,0,0,1,0},//3
{'4',0,1,1,0,0,1,1,0},//4
{'5',1,0,1,1,0,1,1,0},//5
{'6',1,0,1,1,1,1,1,0},//6
{'7',1,1,1,0,0,0,0,0},//7
{'8',1,1,1,1,1,1,1,0},//8
{'9',1,1,1,1,0,1,1,0},//9
};
void setup() {
// set segment pins as OUTPUT
pinMode(seg[0],OUTPUT);
pinMode(seg[1],OUTPUT);
pinMode(seg[2],OUTPUT);
pinMode(seg[3],OUTPUT);
pinMode(seg[4],OUTPUT);
pinMode(seg[5],OUTPUT);
pinMode(seg[6],OUTPUT);
pinMode(seg[7],OUTPUT);
}
void setState(bool mode)
{
for(int i = 0;i<=6;i++)
{
digitalWrite(seg[i],mode);
}
}
void Print(int num) // print any number on the segment
{
// setState(segMode);//turn off the segment
if(segMode == 0){ //for segment mode
for(int i = 0;i<8;i++)
{digitalWrite(seg[i],Chars[num][i+1]);
}
}
else{
for(int i = 0;i<8;i++)
{digitalWrite(seg[i],!Chars[num][i+1]);
}
}
}
void loop() {
for(int i = 0;i < chars;i++) //print
{
Print(i);
delay(1000);
}
//Print(number or character); // print any number or character on the segment ( Note : you can't use capital characters )
//setState(state); //sets the hole segment state to "mode"
}