Что понадобится
- Arduino Uno или Nano.
- Тактовая кнопка и два провода.
- Светодиод — встроенный «L» на выводе 13.
Как подключить
Одну ножку кнопки — к выводу 2, другую — к GND. Резистор не нужен: блок «кнопка пин 2 нажата?» сам включает встроенную подтяжку (INPUT_PULLUP).
Программа из блоков
Соберите в BloX такую программу — или нажмите «Открыть в BloX», и она появится в редакторе готовой.
Код C++, который BloX собирает из этих блоков, — его можно скопировать в Arduino IDE:
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT_PULLUP);
}
void loop() {
if ((digitalRead(2) == LOW)) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}
Как это работает
Пока кнопка отпущена, подтяжка держит на выводе 2 уровень HIGH. Нажатая кнопка соединяет вывод с землёй, и он читается как LOW. Поэтому блок «нажата?» превращается в код digitalRead(2) == LOW — нажатие здесь «ноль», и это нормально.
Блок «если — иначе» выбирает одну из двух веток: кнопка нажата — светодиод включаем, нет — выключаем. Цикл повторяется тысячи раз в секунду, поэтому светодиод отзывается на кнопку мгновенно.
Как загрузить в плату
BloX собирает код, а в плату его заливает Arduino IDE. Нажмите в BloX «Код C++», скопируйте его, вставьте в новый скетч Arduino IDE, выберите плату и порт в меню «Инструменты» и нажмите «Загрузить».
Платы под рукой нет? Нажмите «Проверить в симуляторе» — код откроется на виртуальной плате урокробототехники.рф. Добавьте на схему кнопку и соедините её с выводом 2 и GND, как на столе.
Попробуйте сами
- Поменяйте ветки местами — светодиод будет гореть всегда, кроме момента нажатия.
- Добавьте вторую кнопку на вывод 3 и второй светодиод.
- Сделайте так, чтобы при нажатии светодиод мигал, а не просто горел.