int firstSegmentPin = 2; // подключение 1го сегмента(A) к пину
int segmentCount = 8; // Сколько всего сегментов подключим подряд
int number = 0; // Инициализируем счетчик цифр
byte numberSegments[10] = { // Всего цифр 10, поэтому в массиве 10 чисел.
0b00111111, //цифра 0
0b00000110, //цифра 1
0b01011011, //цифра 2
0b01001111, //цифра 3
0b01100110, //цифра 4
0b01101101, //цифра 5
0b01111101, //цифра 6
0b00000111, //цифра 7
0b01111111, //цифра 8
0b01101111, //цифра 9
};
void setup() {
for (int i = 0; i <= segmentCount; i++) {
// Инициализируем все пины начиная с firstSegmentPin
pinMode(i + firstSegmentPin, OUTPUT);
}
}
void loop() {// Выведем цифру 0
int mask = numberSegments[number];
for (int i = 0; i < segmentCount; i++) {
// определяем: должен ли он быть включён.
boolean stateSegment = bitRead(mask, i);
// включаем/выключаем сегмент на основе полученного значения
digitalWrite(i + firstSegmentPin, !stateSegment);
}
if (number < 9) { // Увеличиваем счетчик, не дойдем до 9
number++;
}
else number = 0; // Если счетчик перешел за 9 - обнулим
delay(1000);
}