В этом уроке мы будем использовать ту же схему подключения что и в прошлом уроке:
Нам уже нравится как наш светодиод мигнул. Но мы бы хотели чтобы он мигнул три раза. Добавим ещё несколько строк и получим примерно следующее:
from machine import Pin import time Pin(5, Pin.OUT).on() time.sleep(3) Pin(5, Pin.OUT).off() time.sleep(3) Pin(5, Pin.OUT).on() time.sleep(3) Pin(5, Pin.OUT).off() time.sleep(3) Pin(5, Pin.OUT).on() time.sleep(3) Pin(5, Pin.OUT).off() time.sleep(3)
Теперь светодиод мигает уже три раза с интервалом три секунды. Но вдруг мы захотели подключить светодиод к другому выводу, например, к четвёртому. Получается что нам нужно будет изменить код в шести местах, и указать новый номер вывода. А если потом появятся ещё светодиоды, и мы их поменяем местами.
Проще будет сразу дать имя выводу к которому подключен светодиод, и при необходимости изменить номер вывода. В таком случае понадобится поменять код только в одном месте, это гораздо удобнее. Да и в принципе намного удобнее именовать не только номер вывода, но и тип его подключения. Например, имя вывода светодиода назовём led (от английского led - светодиод). Также поступим и с временем задержки, ведь если мы захотим мигать с частотой в одну секунду, то тоже удобнее поменять значение только один раз. И добавим несколько комментариев, для повышения читаемости нашего кода.
# импорт модулей from machine import Pin import time #переменные led = Pin(5, Pin.OUT) sec = 1 # мигание светодиодом led.on() time.sleep(sec) led.off() time.sleep(sec) led.on() time.sleep(sec) led.off() time.sleep(sec) led.on() time.sleep(sec) led.off() time.sleep(sec)
Запустите код на исполнение и посмотрите как светодиод мигнёт три раза с частотой в одну секунду. Поясним что мы делаем в каждой строке:
Первой строкой мы из модуля machine
импортируем функционал для работы с выводами контроллера Pin
:
from machine import Pin
Затем импортируем модуль time
для работы с временем:
import time
После этого переменной led
присваиваем значение Pin(5, Pin.OUT)
. В свою очередь это как раз тот функционал который мы импортировали выше. Мы указываем номер вывода, и его тип: Pin.OUT
означающий что вывод используется как “выходной”, из него выходят (исходят) данные:
led = Pin(5, Pin.OUT)
Далее переменной sec
, которая будет отвечать за время задержки, присваиваем значение количества секунд (в данном случае будем использовать задержку в 1 секунду):
sec = 1
Потом используя функцию on()
мы подаём напряжение с контроллера на наш вывод led
:
led.on()
После этого используя модуль time
и его функцию sleep(sec)
, в скобках указываем время задержки. В это время контроллер “спит” - ничего не делает:
time.sleep(sec)
И в конце используем функцию off()
, которая отключает питание контроллера от вывода led
.
led.off()
Запомнить: