Мы создали массив типа byte: каждый его элемент это 1 байт, 8 бит, может принимать значения от 0 до 255.
Символы арабских цифр закодированы состоянием пинов, которые соединены с выводами соответствующих сегментов: 0, если сегмент должен быть выключен, и 1, если включен.
В переменную mask мы помещаем тот элемент массива numberSegments, который соответствует текущей секунде, вычисленной в предыдущей инструкции.
В цикле for мы пробегаем по всем сегментам, извлекая с помощью встроенной функции bitReadнужное состояние для текущего пина, в которое его и приводим с помощью digitalWrite и переменной enableSegment
bitRead(x, n) возвращает boolean значение: n-ный бит справа в байте x
Вопросы для проверки себя К которой ножке нашего семисегментного индикатора нужно подключать землю?
Как мы храним закодированные символы цифр?
Каким образом мы выводим символ на индикатор?
Задания для самостоятельного решения Измените код, чтобы индикатор отсчитывал десятые секунды.
Поменяйте программу так, чтобы вместо символа «0» отображался символ «А».
Дополните схему и программу таким образом, чтобы сегмент-точка включался при прохождении четных чисел и выключался на нечетных
Эксперимент 14. Счётчик нажатий
← Секундомер | Оглавление | Комнатный термометр →
В этом эксперименте мы выводим на семисегментный индикатор количество нажатий на кнопку (единицы).