Урок 4. Кнопка в MicroPython. Условия, циклы и функции.

В этом уроке научимся работать с кнопкой в MicroPython. Разберём 2 примера, позволяющих включать светодиод при нажатии на кнопку. Также в данном уроке рассмотрим основы создания функций, циклов и условий на практических примерах.


Цикл while в Python.

С циклом while мы уже встречались в предыдущих уроках, когда делали бесконечный цикл. Сегодня рассмотрим, как можно реализовать цикл, который позволит сделать ограниченное количество выполнений - интеракций.

Цикл while в Python.

За основу возьмём пример из предыдущего урока. Добавим дополнительную глобальную переменную «counter» равную 0 и к циклу добавим условие «counter <5». В конце цикла добавим к переменной «counter» единицу, что позволит нам выполнить цикл 5 раз.

В конце программы выведем информацию, сколько раз включился и выключился светодиод.

В конце программы выведем информацию, сколько раз включился и выключился светодиод. Сейчас в программе достаточно изменить значение в условии цикла, чтобы поменять количество включений и выключений светодиода.

Функции в Python.

Давайте изменим предыдущий пример таким образом, чтобы количество включений светодиода и время свечения можно было задать из консоли или вызвать в любом месте программы. Для этого создадим функцию «blink_led», в которую передадим 2 значения. Первое значение - «num» - количество включений светодиода, второе - «delay» - время свечения светодиода. Остальной код в функции будет аналогичным предыдущему примеру.

Функции в Python.

Тут есть 2 отличия: переменная «counter» в данном примере локальная и используется только в цикле. В условии цикла используем переменную «num», а не целое число.

Запустим программу и выполним в консоли следующий код «blink_led(5, 0.3)»

Запустим программу и выполним в консоли следующий код «blink_led(5, 0.3)»: мигание светодиодом 5 раз с интервалом 0,3 сек между включением и выключением. По завершению работы программы увидим надпись «Светодиод включился 5 раз». Сейчас можно поэкспериментировать и задавать разные значения, чтобы разобраться, как работает функция.

Сейчас можно поэкспериментировать и задавать разные значения, чтобы разобраться, как работает функция.

Чтобы вызвать функцию в самой программе, достаточно выполнить данный код «blink_led(7, 0.5)», например, в конце данного примера.

Запустим программу и увидим, что светодиод мигает без ввода данных в консоль. Вот так устроены функции в MicroPython.

Запустим программу и увидим, что светодиод мигает без ввода данных в консоль. Вот так устроены функции в MicroPython.

Цикл for.

Чтобы сделать код из предыдущего примера меньше, давайте заменим цикл while на for.Этим мы избавимся от локальной переменной и счётчика.

Чтобы сделать код из предыдущего примера меньше, давайте заменим цикл while на for.Этим мы избавимся от локальной переменной и счётчика.

Для того чтобы выполнить мигание светодиодом строго определённое число раз, воспользуемся функцией range().

Для того чтобы выполнить мигание светодиодом строго определённое число раз, воспользуемся функцией range().

Функцию range() можно представлять, как функцию, что возвращает последовательность чисел, регулируемую количеством переданных в неё аргументов. Их может быть 1, 2 или 3:

range(stop);
range(start, stop);
range(start, stop, step);

Здесь start — это первый элемент последовательности (включительно), stop — последний (не включительно), а step — разность между следующим и предыдущим членами последовательности.

После запуска примера увидим, что всё работает, как и в прошлом примере. При этом мы сократили код на несколько строчек.

После запуска примера увидим, что всё работает, как и в прошлом примере. При этом мы сократили код на несколько строчек.

Включаем светодиод при нажатии кнопки.

В следующем примере рассмотрим, как можно включать встроенный светодиод на ESP32 при нажатии кнопки «boot» на плате.

Включаем светодиод при нажатии кнопки.

Так как кнопка «boot» подключена к GPIO 0, в коде инициализируем данный пин как вход. Считывается состояние контакта аналогичной функцией value(), которую мы использовали в предыдущем уроке для определения состояния светодиода. При нажатии кнопки на контакте получаем логический ноль. Это связано с подключением кнопки. В таком случае мы включаем светодиод, а иначе - выключаем.

При подключении внешнего светодиода и тактовой кнопки вот по такой схеме.

При подключении внешнего светодиода и тактовой кнопки вот по такой схеме.

Логика работы изменится. При нажатии на кнопку на контакте будет логическая единица. Нужно учесть, что при написании программы остальной код не изменится.

Логика работы изменится. При нажатии на кнопку на контакте будет логическая единица.

Как видим, данный пример можно использовать для работы с тактовой кнопкой не зависимо от способа её подключения.

Как видим, данный пример можно использовать для работы с тактовой кнопкой не зависимо от способа её подключения.

В следующем уроке продолжим работать с тактовой кнопкой.

Понравился Урок 4. Кнопка в MicroPython. Условия, циклы и функции? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Пример 1. Цикл while в MicroPython Пример 1. Цикл while в MicroPython.py1 Kb 545 Скачать
Пример 2. Функции в MicroPython Пример 2. Функции в MicroPython.py1 Kb 582 Скачать
Пример 3. Цикл for в MicroPython Пример 3. Цикл for в MicroPython.py1 Kb 614 Скачать
Пример 4. Включать встроенный светодиод на ESP32 при нажатии кнопки «boot» Пример 4. Включать встроенный светодиод на ESP32 при нажатии кнопки «boot».py1 Kb 609 Скачать
Пример 5. Включаем светодиод при нажатии кнопки. Пример 5. Включаем светодиод при нажатии кнопки. .py1 Kb 560 Скачать

Комментарии

Ваше Имя*



Cлучайные товары

ESP8266 WIFI модуль ESP-01 ESP-01SESP8266 WIFI модуль ESP-01 ESP-01S


AliExpress
AliExpress

Модули для ESP-01Модули для ESP-01


AliExpress
AliExpress

Читайте также

Мы в соц сетях

Подпишись на канал Telegram
Разработка проектов