Хочешь создать умный дом, но не знаешь как? Присмотрись к Node-REDCutehamster.gif! Так же не забывай поддержать наш справочникCutehamster.gif.

ESP32:Примеры/Управление светодиодом с помощью кнопки

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 3377 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Черновик


Управление светодиодом с помощью кнопки

Этот скетч-пример демонстрирует как считывать данные с входных цифровых контактов и управлять выходными цифровыми контактами при помощи платы ESP32, запрограммированный с помощью среды разработки Arduino IDE.

Рассмотрим код более подробно.

В этих двух строчках создаем две переменные, где будут храниться номера контактов:

const int buttonPin = 4;  // номер контакта для кнопки
const int ledPin = 16;    // номер контакта для светодиода

Кнопка подключена к контакту GPIO4, а светодиод – к контакту GPIO16. При использовании IDE Arduino для программирования ESP32 контакт 4 – это GPIO4, а контакт 16 – это GPIO16.

Далее создаем переменную, в которой будет храниться состояние кнопки:

int buttonState = 0;

В блоке setup() делаем кнопку входным (INPUT), а светодиод – выходным (OUTPUT) устройством. Используем для этого функцию pinMode(), параметрами для которой служат контакт, к которому вы обращаетесь, и режим его работы (INPUT или OUTPUT).

pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);

В блоке loop() происходит считывание состояния кнопки, после чего оно будет использовано для управления светодиодом.

В следующей строчке считываем состояние кнопки и сохраняем его в переменную «buttonState». Для этого используется функция digitalRead():

buttonState = digitalRead(buttonPin);

Далее стоит оператор if(), проверяющий, не является ли состоянием кнопки значение «HIGH». Если является, он включает светодиод при помощи функции digitalWrite() с параметрами «ledPin» и «HIGH».

if (buttonState == HIGH) {
// включаем светодиод:
digitalWrite(ledPin, HIGH);

Если значение кнопки – это не «HIGH», то светодиод будет выключен при помощи той же функции digitalWrite(), однако теперь ее вторым параметром будет «LOW».

} else {
 // выключаем светодиод:
 digitalWrite(ledPin, LOW);
}
Pixel Art Mini Meow Animated.gif Важно: Перед тем, как строить какую-либо цепь, всегда сверяйтесь с распиновкой свой платы.


Необходимое оборудование

Схема

Pixel Art Mini Meow Animated.gif На данной схеме используется плата ESP32S-HiLetgo, если вы используете другую, сверьтесь с вашей распиновкой.


Кнопка подключена к контакту GPIO4 через резистор на 10 кОм, а светодиод – к контакту GPIO16 через резистор 330 Ом.

Esp32 button led on off 1.png

Код

  1. // задаем номера контактов:
  2. const int buttonPin = 4;     // номер контакта для кнопки
  3. const int ledPin =  16;       // номер контакта для светодиода
  4.  
  5. // переменная для хранения статуса кнопки:
  6. int buttonState = 0;
  7.  
  8. void setup() {
  9.   Serial.begin(115200);  
  10.   // инициализируем контакт кнопки, делая его входным контактом:
  11.   pinMode(buttonPin, INPUT);
  12.   // инициализируем контакт светодиода, делая его выходным контактом:
  13.   pinMode(ledPin, OUTPUT);
  14. }
  15.  
  16. void loop() {
  17.   // считываем значение кнопки:
  18.   buttonState = digitalRead(buttonPin);
  19.   Serial.println(buttonState);
  20.   // проверяем, нажата ли кнопка;
  21.   // если нажата, значением в «buttonState» будет «HIGH»:
  22.   if (buttonState == HIGH) {
  23.     // включаем светодиод:
  24.     digitalWrite(ledPin, HIGH);
  25.   } else {
  26.     // выключаем светодиод:
  27.     digitalWrite(ledPin, LOW);
  28.   }
  29. }

См.также

Внешние ссылки