Код для поиска

Учебник по ESP32 9/55 - Использование кнопки для переключения светодиода, нажатие для включения, нажатие для выключения - набор SunFounder ESP32 IoT

Учебник по ESP32 9/55 - Использование кнопки для переключения светодиода, нажатие для включения, нажатие для выключения - набор SunFounder ESP32 IoT

В этом уроке мы научимся использовать кнопку для включения и выключения светодиода с помощью микроконтроллера ESP32. Проект продемонстрирует, как считывать состояние кнопки и управлять светодиодом. При нажатии кнопки светодиод будет включаться, а при отпускании — выключаться. Это основополагающая концепция для многих интерактивных проектов на ESP32.

ESP32 — это мощный микроконтроллер со встроенными возможностями Wi-Fi и Bluetooth, что делает его подходящим для различных IoT-приложений. В этом уроке мы будем использовать ESP32 из стартового набора SunFounder ESP32 Starter Kit, который включает такие необходимые компоненты, как резисторы и светодиоды, для создания простой схемы. Подробное объяснение подключения и кода смотрите в видео (на видео 00:00).

Объяснение аппаратной части

Ключевые компоненты этого проекта включают микроконтроллер ESP32, кнопку, светодиод и резисторы. ESP32 выступает в роли мозга проекта, управляя светодиодом на основе состояния кнопки. Кнопка позволяет пользователю взаимодействовать со схемой, а светодиод обеспечивает визуальную обратную связь при нажатии кнопки.

Кнопка работает, замыкая цепь при нажатии, что позволяет току течь. Это действие отправляет сигнал HIGH на назначенный входной контакт ESP32, который затем может быть считан в коде. Резистор, подключенный к кнопке, гарантирует, что контакт имеет определенное состояние, когда кнопка не нажата, предотвращая нестабильное поведение.

Кнопка с резистором

Инструкции по подключению

Для сборки схемы начните с подключения более длинного вывода светодиода (анода) к резистору на 220 Ом. Подключите другой конец резистора к контакту GPIO 26 на ESP32. Более короткий вывод светодиода (катод) должен быть подключен к земле. Затем возьмите кнопку и подключите одну сторону к источнику питания 3.3 В на плате. Другая сторона кнопки подключается к контакту GPIO 14.

Кнопка без резистора
Кнопка без резистора
Кнопка с резистором
Кнопка с резистором

Дополнительно разместите резистор на 10 кОм от контакта GPIO 14 к земле, чтобы гарантировать, что контакт считывает LOW, когда кнопка не нажата. Наконец, подключите провод заземления от ESP32 к общей земле на макетной плате. Эта настройка позволит ESP32 считывать состояние кнопки и соответствующим образом управлять светодиодом.

Примеры кода и пояснения

Ядро программы начинается с определения номеров контактов для кнопки и светодиода с использованием констант. Это гарантирует, что назначения контактов останутся неизменными на протяжении всего выполнения программы.

// установка номеров контактов
const int buttonPin = 14;  // Контакт кнопки
const int ledPin = 26;     // Контакт светодиода

В функции setup() мы инициализируем последовательный монитор и устанавливаем контакт кнопки как вход, а контакт светодиода как выход. Это подготавливает ESP32 к чтению состояния кнопки и управлению светодиодом.

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

Внутри функции loop() программа непрерывно считывает состояние кнопки и выводит его в последовательный монитор. Если кнопка нажата, светодиод включается; в противном случае он выключается. Эта логика необходима для переключения светодиода в зависимости от состояния кнопки.

void loop() {
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

Эта базовая функциональность позволяет светодиоду напрямую реагировать на кнопку. Для получения дополнительных сведений о проекте и полном коде обратитесь к видео (на видео 14:00).

Демонстрация / Что ожидать

После завершения подключения и загрузки кода нажатие кнопки должно включать светодиод, а отпускание — выключать его. Такое поведение подтверждает, что состояние кнопки считывается правильно. Если светодиод не реагирует должным образом, проверьте подключение и убедитесь, что кнопка работает корректно.

Во время тестирования обязательно наблюдайте за последовательным монитором для чтения состояния кнопки. Вы должны видеть '1', когда кнопка нажата, и '0', когда она отпущена. Если показания неожиданно колеблются, это может указывать на проблему с подключением или необходимость добавления логики антидребезга в код.

Временные метки видео

  • 00:00 Начало
  • 1:48 Введение в проект
  • 3:10 Объяснение переключателя и кнопки
  • 7:19 Объяснение подключения
  • 12:25 Объяснение кода Arduino для кнопки
  • 15:56 Выбор платы ESP32 и COM-порта
  • 17:38 Демонстрация проекта
  • 18:33 Проект-2: Переключение и светодиод
  • 19:09 Код Arduino для переключения светодиода
  • 21:16 Демонстрация переключения светодиода

Изображения

Push button with resistor
Push button with resistor
Push button with resistor
Push button with resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button with resistor
Push button with resistor
808-ESP32 Tutorial 9/55 - Arduino code push button
Язык: C++
/*
 * // установите номера핀
 */
const int buttonPin = 14; // Кнопка-игла
const int ledPin = 26; // Светодиодный вывод

 // переменная для хранения состояния кнопки
int buttonState = 0;

void setup() {
  Serial.begin(115200);
 // инициализируйте контакт кнопки как входной
  pinMode(buttonPin, INPUT);
 // инициализируйте светодиодный пин как выходной
  pinMode(ledPin, OUTPUT);
}

void loop() {
 // прочитайте состояние значения кнопки
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
 // если кнопка нажата
  if (buttonState == HIGH) {
 // включить светодиод
    digitalWrite(ledPin, HIGH);

  } else {
 // выключить светодиод
    digitalWrite(ledPin, LOW);
  }
}

Ресурсы и ссылки

Ресурсов пока нет.

Файлы📁

Нет доступных файлов.