Robots #4 Кнопки (Buttons)


Кнопки Zumo 32U4

Робот оснащён 4 кнопками для аппаратного управления:

  • кнопка Reset служит для перезапуска выполняемой программы
  • кнопки A, B и C могут программироваться


Программирование кнопок

После подключения необходимых библиотек в начале программы для управления дополнительными устройствами (например, кнопки, моторы, экран и прочие), создаются экземпляры объектов, к которым можно обращаться и вызывать их методы. В случае с кнопками, это объекты:
Zumo32U4ButtonA buttonA; 
Zumo32U4ButtonB buttonB;
Zumo32U4ButtonC buttonC;
// buttonA, buttonB и buttonC – пример имён, которые мы можем сами назначать

Используемые методы (на примере кнопки А):
buttonA.waitForButton () // останавливает выполнение программы, пока кнопка А не будет нажата
buttonA.getSingleDebouncedPress () // возвращает true, если кнопку А нажали
buttonA.getSingleDebouncedRelease () // возвращает true, если кнопку А отпустили 

Пример программы

/* При нажатии на кнопку С загорается жёлтая лампочка, при нажатии и отпускании кнопки А жёлтая лампочка гаснет */
#include <Wire.h>
#include <Zumo32U4.h>

// Объявляем объекты – две кнопки
Zumo32U4ButtonA buttonA;
Zumo32U4ButtonC buttonC;

void setup() {
  // Вначале погасим лампочку
  ledYellow(0);
}

void loop() {
  // Проверяем условие, нажата ли кнопка С
  if (buttonC.getSingleDebouncedPress ())
  {
    // даём напряжение к жёлтому светодиоду
    ledYellow(1);
  }
  
  // Проверяем условие, отпущена ли кнопка А
  if (buttonA.getSingleDebouncedRelease ())
  {
    // снимаем напряжение с жёлтого светодиода
    ledYellow(0);
  }
}

Задачи

Задача 1. При нажатии на кнопку А робот зажигает красный светодиод. При нажатии на кнопку В робот  зажигает зелёный светодиод. При нажатии на кнопку С робот гасит все зажжённые светодиоды.
Задача 2. При нажатии и удерживании на кнопку А горит красный светодиод. При её отпускании красный светодиод гаснет.
Задача 3. При нажатии на кнопку А робот зажигает все 3 светодиода, При нажатии на кнопку В робот гасит все 3 светодиода. При нажатии на кнопку С все светодиоды начинают мигать.
Задача 4. При запуске программы, робот ждёт нажатия кнопки А и после нажатия зажигает все 3 светодиода.
Задача 5. Ввести в программу глобальную переменную int count. При нажатии на кнопку А увеличивать эту переменную на 1. Если значение этой переменной больше 10, то зажигать жёлтый светодиод. Если больше 15 – горит только зелёный светодиод. Если больше 20 – горит только красный светодиод. 

Комментарии