Урок 6. Переменные

В этом уроке мы будем использовать ту же схему подключения что и в прошлом уроке:

Нам уже нравится как наш светодиод мигнул. Но мы бы хотели чтобы он мигнул три раза. Добавим ещё несколько строк и получим примерно следующее:

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()

Запомнить:

  • Переменные используются для именования частей кода
  • Они нужны чтобы было легче понимать, что это за часть кода
  • Они нужны чтобы было легче исправлять и редактировать код

Предыдущий урок

Следующий урок