ESP32: цифрові входи та виходи

Мікроконтролер ESP32 має десятки універсальних GPIO (General Purpose Input/Output), які можна налаштовувати як цифрові входи або цифрові виходи. Це дозволяє підключати кнопки, датчики, світлодіоди, реле та інші пристрої.

Теорія

  • Цифровий вихід — ESP32 може встановлювати на виводі логічний рівень HIGH (1) або LOW (0). При цьому можна вмикати або вимикати світлодіоди, реле тощо.
  • Цифровий вхід — ESP32 може зчитувати стан виводу: якщо на пін подається напруга 3,3 В — це логічна «1» (HIGH), якщо 0 В — логічний «0» (LOW).
  • Режими pinMode:
    • INPUT — вхід.
    • OUTPUT — вихід.
    • INPUT_PULLUP — вхід з внутрішнім підтягуванням до «1» (зручно для кнопок).
    • INPUT_PULLDOWN — вхід з внутрішнім підтягуванням до «0».

Приклад програми

Програма, яка вмикає світлодіод при натисканні кнопки:


const int buttonPin = 4;   // GPIO для кнопки
const int ledPin = 2;      // GPIO для світлодіода (вбудований LED на ESP32)

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // кнопка з внутрішнім підтягуванням
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int buttonState = digitalRead(buttonPin); // читаємо стан кнопки

  if (buttonState == LOW) {
    digitalWrite(ledPin, HIGH); // кнопка натиснута
  } else {
    digitalWrite(ledPin, LOW);  // кнопка відпущена
  }
}

Пояснення роботи

  1. Кнопка підключена до GPIO4, світлодіод — до GPIO2.
  2. Режим INPUT_PULLUP дозволяє не ставити зовнішній резистор: пін утримується у стані HIGH, поки кнопка не замикає його на GND.
  3. Функція digitalRead() зчитує стан кнопки.
  4. При натисканні кнопки ESP32 встановлює вихід ledPin у HIGH, і світлодіод засвічується.

Висновки

Робота з цифровими входами та виходами ESP32 — це основа для створення проєктів. Кнопки та світлодіоди допоможуть розібратися з базовими принципами, які потім можна застосовувати у складніших схемах: керуванні моторами, реле чи датчиками.

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Плата STM32F103C8T6

Плата STM32F103C8T6

Мінімальна плата контролера від світового лідера по виробництву контролерів - фірми STM32.Для заливк..

211.50грн.

Муфта на кроковий двигун 5x5x25мм

Муфта на кроковий двигун 5x5x25мм

Ця муфта слугує перехідником між валами 5 мм та 5 мм. Тобто містить з обох боків отвір діаметром 5 м..

60.04грн.

Торцеві тримачі лінійних напрямляючих 8мм

Торцеві тримачі лінійних напрямляючих 8мм

Тримач циліндричної напрямляючої діаметром 8 ммПідходить для усіх осей 3D-принтера або CNCДіаметр от..

72.01грн.

Симістор BTA12-600B

Симістор BTA12-600B

Високовольтний симістор.Максимальний струм навантаження за повної синусоїди 12 АМаксимальний струм к..

15.42грн.

..

0.00грн.