#define FIRST 2 #define COUNT 7 #define POT A5 //Создадим массив в который пропишем кодировки выводимых чисел. byte Segments[10] = { 0b00111111, 0b00001010, 0b01011101, 0b01011110, 0b01101010, 0b01110110, 0b01110111, 0b00011010, 0b01111111, 0b01111110, }; void setup() { for (int i = 0; i < COUNT; ++i) pinMode(i + FIRST, OUTPUT); } void loop() { // определяем число, которое собираемся отображать. int number = analogRead(POT) / 103; // получаем код, в котором зашифрована арабская цифра int value = Segments[number]; // для каждого из 7 сегментов индикатора определяем: должен ли он быть включён. for (int i = 0; i < COUNT; ++i) { // Для этого считываем бит (англ. read bit), соответствующий текущему // сегменту «i». Истина — он установлен (1), ложь — нет (0) boolean Segment = bitRead(value, i); // включаем/выключаем сегмент на основе полученного значения digitalWrite(i + FIRST, Segment); } }