Для работы с сенсорной кнопкой в виде логотипа в палитре Ввод, в разделе micro : bit ( V 2)появились блоки on logoи logo is pressed(рис. 3.11).
Рис. 3.11. Блоки для работы с сенсорной кнопкой в виде логотипа
Блок on logoполучает управление, если дотронуться до логотипа пальцем. С помощью блока logo is pressedможно проверить, нажат логотип в настоящее время, или нет.
На рис. 3.12 мы показали простейшую программу microbit2-Сенсорный-логотип.hex, реагирующую на нажатие логотипа.
Рис. 3.12. Обработка событий от логотипа
Если нажать логотип, на экране micro:bit появится галочка. Чтобы она исчезла, нажмите кнопку А.
В блоке on logoможно указать, что событие от логотипа должно возникать только в том случае, если нажимать на него достаточно долго. Такое поведение демонстрирует программа microbit2-Логотип-нажат-долго.hex (рис. 3.13).
Рис. 3.13. Реагирование на длительное нажатие логотипа
Вы также можете регистрировать события, возникающие в момент отпускания логотипа. Для этого в меню блока on logoвыберите строку отжата.
Еще одна несложная программа microbit2-Сенсорный-логотип-2.hex демонстрирует использование блока logo is pressed(рис. 3.14).
Рис. 3.14. Проверяем нажатие логотипа в цикле
Эта программа проверяет состояние кнопки логотипа в цикле. Пока логотип нажат, программа рисует на экране micro:bit бьющееся сердце. Но как только вы отпустите логотип, сердце исчезает!
Как мы уже говорили, во многих приборах используются сенсорные кнопки. Такие кнопки служат долго, т.к. в них нет механических движущихся деталей.
Сенсорные кнопки на micro:bit версии 2 могут работать в емкостном и резистивном режиме.
В емкостном режиме используется тот факт, что прикосновение к кнопке равносильно подключению к ней конденсатора.
В резистивном режиме предполагается, что человек касается одновременно кнопки и общего провода (земли, минуса источника питания). При этом изменяется сопротивление между кнопкой и землей от практически бесконечного до значений, исчисляемых единицами или десятками КОм.
Забегая вперед, заметим, что вы можете использовать в качестве сенсорных контактов выводы P0, P1 и P2 в качестве сенсорных кнопок. На рис. 3.11 эти контакты отмечены цифрами 0, 1 и 2. Подробнее мы расскажем о контактах разъема платы micro:bit в 7 и 8 главе нашей книги.
На рис. 3.15 мы показали программу microbit2-Сенсорный-контакт.hex, которая делает то же самое, что и программа microbit2-Сенсорный-логотип-2.hex.
Рис. 3.15. Используем контакт P 0 в качестве сенсорной кнопки
В начале своей работы программа устанавливает один из двух возможных режимов работы сенсорного контакта – емкостной или резистивный. Чтобы использовать емкостной режим, в меню блока set P 0 to touch modeвыберите строку capacitive, а чтобы в резистивном – строку resistive.
Блок set P 0 to touch modeнаходится в палитре Расширенные, Контакты, еще, в разделе micro : bit ( v 2).
Загрузив программу в микроконтроллер, дотроньтесь пальцем до контакта, обозначенного на плате micro:bit цифрой 0. Пока вы держите палец, на экране micro:bit будет биться сердце.
В качестве первого домашнего заданияпопробуйте самостоятельно доработать программу microbit-Счетчик.hex (рис. 3.6) таким образом, чтобы при нажатии двух кнопок одновременно текущее значение счетчика сбрасывалось в нулевое значение.
Решение вы сможете найти в файле microbit-Счетчик-со-сбросом.hex, загрузив архив программ с сайта автора этой книги http://frolov-lib.ru/books/boxrover/.
Читать дальше