Кнопки

Любая программа чаще всего имеет элементы вывода информации и элементы ввода. В микроконтроллерах часто используются для этого кнопки

М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() принимает только строковые значения.

Функции можно вкладывать в друг друга. Они выполняются в порядке раскрывания ( в начале самая вложенная) Примером может служить Матрешка. В таком случае выполнение по росту от маленькой до большой.

../_images/matrioshka.jpg

Отслеживание событий

Часто необходимо создать ожидание события. Вы создаете цикл, который опрашивает устройство и ждет от него выполнения условия.

Для создания такого цикла можно использовать 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():
  • and - логическая И. кнопка A и ``B``**не нажата**

    while not button_a.is_pressed() or not button_b.is_pressed():

  • or - логическая И. кнопка A или ``B``**не нажата**

Обработка событий

Если Вы хотите написать программу, которая реагирует на нажатие на кнопки, используйте Условие 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.