Кнопки
Любая программа чаще всего имеет элементы вывода информации и элементы ввода. В микроконтроллерах часто используются для этого кнопки
Мicrobit имеет две кнопки на лицевой части. Они называются A
и B
.
Напишите программу, которая выводит на дисплей информацию о кнопке A
:
from microbit import *
sleep(10000)
display.scroll(str(button_a.get_presses()))
Микроконтроллер засыпает на 10 секунд (sleep(10000)
). Вы нажимаете несколлько раз на кнопку
Следующая команда выводит количество нажатий button_a.get_presses()
button_a
- указывает на объект кнопкаA
. КнопкаB
имеет указательbutton_b
get_presses()
- функция (команда), которая возвращает количество нажатий
str()
- функция, которая переводит число в строку
Предупреждение
Функция scroll()
принимает только строковые значения.
Функции можно вкладывать в друг друга. Они выполняются в порядке раскрывания ( в начале самая вложенная) Примером может служить Матрешка. В таком случае выполнение по росту от маленькой до большой.
Отслеживание событий
Часто необходимо создать ожидание события. Вы создаете цикл, который опрашивает устройство и ждет от него выполнения условия.
Для создания такого цикла можно использовать while
. Он проверяет, если условие
события возвращает True
он запускает блок кода, называемый телом цикла.
Если возвращается False
, он выходит из цикла и продолжает выполнять программу дальше:
from microbit import *
while not button_a.is_pressed():
display.show(Image.ASLEEP)
display.show(Image.SURPRISED)
not button_a.is_pressed()
- кнопкаA
не нажата (not
), выводится изображениеImage.ASLEEP
иначе
Image.SURPRISED
Вы можете использовать логические операторы для отслеживания нескольких событий:
while not button_a.is_pressed() and not button_b.is_pressed():
Обработка событий
Если Вы хотите написать программу, которая реагирует на нажатие на кнопки, используйте
Условие if
и метод is_pressed
.
Зацикливание программы на постоянную проверку событий:
from microbit import *
while True:
if button_a.is_pressed():
display.show(Image.HAPPY)
else:
display.show(Image.SAD)
Если кнопка нажата отображается счастливый смайлик, иначе грустный.
Метод is_pressed
дает только два результата: True
или False
.
Если вы нажимаете кнопку, она возвращает True
, в противном случае возвращается
False
.