Это старая версия документа!
Научившись подключать и управлять светодиодным индикатором попробуем использовать его для отображения данных. Сконструируем простейший секундомер, который отсчитывает и отображает секунды от 0 до 9.
Оставим схему, собранную на прошлом эксперименте.
Рисунок 1. Электрическая принципиальная схема эксперимента
Токоограничительные резисторы обязательны!
from machine import Pin import time _init() segments = [14, 13, 4, 5, 12, 16, 15] # ABCDEFG digits = [ [1, 1, 1, 1, 1, 1, 0], # 0 [0, 1, 1, 0, 0, 0, 0], # 1 [1, 1, 0, 1, 1, 0, 1], # 2 [1, 1, 1, 1, 0, 0, 1], # 3 [0, 1, 1, 0, 0, 1, 1], # 4 [1, 0, 1, 1, 0, 1, 1], # 5 [1, 0, 1, 1, 1, 1, 1], # 6 [1, 1, 1, 0, 0, 0, 0], # 7 [1, 1, 1, 1, 1, 1, 1], # 8 [1, 1, 1, 1, 0, 1, 1], # 9 ] def draw_time(digit): for el in enumerate(digit): if (el[1]): Pin(segments[el[0]]).on() else: Pin(segments[el[0]]).off() while True: for digit in digits: draw_time(digit) time.sleep(1)
В этой программе мы записали номера выводов микроконтроллера, к которым подключены сегменты индикатора, в массив segments
. Порядок перечисления сегментов указан в комментарии в этой строке.
Комментарии используются в программах, чтобы записать какие либо пояснения к коду, и предназначены только для человека, который читает код. Комментарии никак не влияют на выполнение программы. В языке Python комментарий начинается с символа #. Также часто комментируют части кода, которые не должны исполняться, но удалять совсем их пока не нужно.
В строке 7 объявляем массив, в котором описываем цифры от 0 до 9 и какие сегменты должны светиться на индикаторе, чтобы эту цифру отобразить, а какие должны быть потушены. Для описания этого мы использовали двумерный массив. Это массив, у которого каждый из элементов является тоже массивом. Посмотрим внимательнее: элементом под индексом 0 у массива digits
является массив [1, 1, 1, 1, 1, 1, 0]
for s in segments: led = Pin(s, Pin.OUT).off()