//присваеваем сегментам локальные переменные и выходы
int g = 6;
int f = 7;
int a = 9;
int b = 8;
int dp = 4;
int c = 5;
int d = 3;
int e =2;
//прописываем пинам выходы
void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(dp, OUTPUT);
Serial.begin(115200);
}
//создаем цикл перечисления цифр от 0 до 9
void loop() {
for(int i=0;i<10;i++){
showNumber(i);//название функции вывода цифр
delay(1000);
lightOFF();//функция сегментов дисплея
}
}
//гасим все сегменты
void lightOFF(){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, HIGH);
}
void showNumber(int number){//запускаем функцию вывода цифр и начинаем отсеивать лишнее
//задаем переменную для сравнения
Serial.print(" ");
Serial.print(number);
if(number !=1 && number !=4)//не равно 1 и 4 зажигаем сегмент a
digitalWrite(a, LOW);
if(number !=5 && number !=6)//не равно 5 и 6 зажигаем сегмент b
digitalWrite(b, LOW);
if(number !=2)
digitalWrite(c, LOW);//не равно 2 зажигаем сегмент c
if(number !=1 && number !=4 && number !=7)// не равно 1 и 4 и 7 зажигаем сегмент d
digitalWrite(d, LOW);
if(number ==2 || number ==6 || number ==8 || number ==0)//равно 2,6,8,0 зажигаем сегмент e
digitalWrite(e, LOW);
if(number !=1 && number !=2 && number !=3 && number !=7)//не равно 1 и 2 и 3 и 7 зажигаем сегмент f
digitalWrite(f, LOW);
if(number !=0 && number !=1 && number !=7)//не равно 0 и 1 и 7 зажигаем сегмент g
digitalWrite(g, LOW);
}