uint8_t num=0;// инициализация переменной "начальная отображаемая цифра на сегменте"
uint8_t num2=9;// инициализация переменной "конечная отображаемая цифра на сегменте"
int sec=1; // порядок смены цифр на сегменте в секундах
void setup() {
pinMode(6,OUTPUT); // определяем режим работы пина на выход
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void loop() {
for (num; num<(num2+1); num++) { // цикл вывода цифр на индикатор
setNumbOnIndic(num,sec); // функция вывода цифры на сегмент
}
while(true){} // выход из loop
}
// функция вывода цифры на сегмент
void setNumbOnIndic(uint8_t number, uint8_t time)
{
switch (number) { // выбор какую ""циферию" выводим
case 0:
for (int i = 6; i <12; i++) // цикл вывода "0"
{digitalWrite(i, HIGH); } // перевод соответствующих пинов в высокий уровень
case 1:
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
break; //выход из case
case 2:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(12, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
break;
case 3:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(12, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
break;
case 4:
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
break;
case 5:
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(9, HIGH);
digitalWrite(11, HIGH);
break;
case 6:
digitalWrite(6, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(8, HIGH);
break;
case 7:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
break;
case 8:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
break;
case 9:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
break;
} // конец case
/* Секция задержки смены цифры : общее время задержки перед сменой
цифры = time, во время секции тушим все сегменты*/
{ delay (time*1000-time*100);
for (int i = 6; i <13; i++)
digitalWrite(i, LOW);
delay (time*100);
}
}