ESP32: Кнопки и ручки
ESP32: Кнопки и ручки — 54 готовых примера со схемой и кодом. Откройте любой в браузере и запустите без платы и проводов.
Кнопка через прерывание
Обработчик вместо опроса. Показывает volatile и IRAM_ATTR — без них работать не будет.
Переключатель режимов
Тумблер задаёт режим, а не событие: состояние читается когда угодно.
Пробуждение кнопкой
Просыпается не по времени, а по внешнему сигналу. Вывод должен быть из числа RTC-выводов.
Веб-сервер: JSON с показаниями
Машиночитаемый ответ вместо страницы. Откройте «Веб-интерфейс» и наберите /data — отсюда данные забирает что угодно, от скрипта до…
Потенциометр: чтение АЦП
analogRead и 12 бит разрешения. Значение 0…4095 на всю шкалу.
Сервопривод по потенциометру
Ручка задаёт угол напрямую. Классический пример пропорционального управления.
Serial: данные для графика
Числа через запятую в одной строке — формат, который читает построитель графиков.
Матричная клавиатура 4x4
Шестнадцать кнопок на восьми выводах. Сканирование по строкам и чтение столбцов.
Метроном
Темп задаётся потенциометром, щелчок — коротким импульсом. Пример совместной работы трёх устройств.
Потенциометр управляет яркостью
Связка вход-выход через map(). Первый пример, где приборы взаимодействуют.
Реле от кнопки с фиксацией
Кнопка без фиксации управляет нагрузкой с фиксацией. Состояние держит программа.
Сглаживание показаний АЦП
Скользящее среднее по кольцевому буферу. Сырой АЦП шумит на пару единиц всегда.
Секундомер
Пуск, стоп, сброс одной кнопкой по длительности нажатия. Состояние — три поля и переход между ними.
Таймер обратного отсчёта
Минуты и секунды на четырёх разрядах. Кнопка запускает и сбрасывает, а отсчёт идёт по millis, а не по delay.
Термистор NTC
Уравнение Стейнхарта–Харта в упрощённой форме: сопротивление в градусы через бета-коэффициент.
Усреднение по времени
Экспоненциальное сглаживание: одна переменная вместо буфера, коэффициент задаёт инерцию.
Змейка на светодиодной матрице 8×8
Руль — энкодер: по часовой — змейка поворачивает направо, против — налево. Съела точку — длиннее и быстрее; врезалась в себя — игр…
ИК-пульт: приём кода
Приёмник ловит кадр пульта, а разбирает его блок RMT: импульсы по полмиллисекунды скетч поймать не успеет. Нажмите на кружок приём…
Порог с гистерезисом
Один порог заставляет выход дребезжать у границы. Два порога — нет.
Секундомер с сотыми
Четыре разряда под секунды и сотые. Показывать сотые каждый виток нельзя — индикатор не успевает, да и глаз тоже.
«Поймай огонёк»: игра на реакцию на ленте NeoPixel
Огонёк бегает по ленте, центральный пиксель подсвечен зелёным. Нажмите кнопку, когда огонёк на нём, — уровень пройден, и огонёк по…
Сейф с кодом: клавиатура, сервозамок и OLED
Код набирается на клавиатуре, «#» — ввод, «*» — стереть. Верный код отводит ригель сервоприводом на пять секунд. Три ошибки подряд…
MQTT: лампа и кнопка
PubSubClient: плата подписана на команду для лампы и публикует нажатия кнопки и своё состояние. Последняя воля (offline) и сохранё…
Светофор с кнопкой пешехода и обратным отсчётом
Машинам горит зелёный, пока никто не нажал кнопку. Нажали — жёлтый, красный, а пешеходам зелёный с отсчётом секунд на индикаторе…