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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Мотор безщіточний A2212 1000KV

Мотор безщіточний A2212 1000KV

Мотор трьохфазний безколекторний для мультикоптерів 1000KVKV: 1000 обертів на вольтМаксимальна ..

360.40грн.

Arduino 4-20 мА підключення датчика рівня

Arduino 4-20 мА підключення датчика рівня

Бувають такі часи в житті ардуінщіка, коли йому доводиться з глибин аматорських датчиків підніматися..

Джойстик двохосьовий з кнопкою

Джойстик двохосьовий з кнопкою

Двохосьовий джойстик з кнопкою — це зручний модуль керування для проєктів на Arduino, ESP32 та інших..

44.72грн.

Компаратор подвійний LM393DR

Компаратор подвійний LM393DR

LM393DR в корпусі SOP-8 для поверхневого монтажу.Ці мікросхеми розробники усіляких датчиків для люби..

4.04грн.

Підсилювач PAM8610 10x2Вт з регулюванням гучності та роз'ємами

Підсилювач PAM8610 10x2Вт з регулюванням гучності та роз'ємами

Стерео підсилювач звукової частоти класу D зі змінним резистором регулювання гучності, роз'ємами та ..

131.91грн.