pinport

304 в открытом доступе 190 просмотров
ESP32

Мигание без delay()

То же мигание, но на millis(). Пока идёт delay(), процессор не может делать ничего другого — здесь может.

Светодиоды
0 просмотров
ESP32

Два светодиода по очереди

Два вывода и противофаза. Показывает, что состояние выводов независимо.

Светодиоды
0 просмотров
ESP32

Бегущий огонь

Четыре светодиода и массив выводов. Первый пример, где код короче схемы.

Светодиоды
0 просмотров
ESP32

Светофор

Конечный автомат на трёх светодиодах: состояние, длительность, переход. Основа для любой последовательности.

Светодиоды
0 просмотров
ESP32

Кнопка: чтение состояния

Подтяжка внутри контроллера и инверсия логики: нажатая кнопка даёт LOW. Первое, обо что спотыкаются все.

Кнопки и ручки
0 просмотров
ESP32

Кнопка зажигает светодиод

Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.

СветодиодыКнопки и ручки
0 просмотров
ESP32

Антидребезг кнопки

Механический контакт при нажатии дребезжит несколько миллисекунд. Без фильтра одно нажатие считается десятком.

Кнопки и ручки
0 просмотров
ESP32

Ёмкостное касание

У ESP32 десять сенсорных выводов. Прикосновение уменьшает показание — порог подбирается на месте.

0 просмотров
ESP32

Кнопка через прерывание

Обработчик вместо опроса. Показывает volatile и IRAM_ATTR — без них работать не будет.

Кнопки и ручки
0 просмотров
ESP32

Короткое и длинное нажатие

Одна кнопка — две команды. Различаются по длительности удержания.

Кнопки и ручки
0 просмотров
ESP32

Переключатель режимов

Тумблер задаёт режим, а не событие: состояние читается когда угодно.

СветодиодыКнопки и ручки
0 просмотров
ESP32

Плавное разгорание (ШИМ)

ledcWrite и скважность: яркость задаётся долей времени, когда вывод включён.

Светодиоды
0 просмотров
ESP32

Дыхание светодиода

Та же яркость, но по синусу. Линейное изменение скважности глаз воспринимает неравномерно.

Светодиоды
0 просмотров
ESP32

RGB: перебор цветов

Три канала ШИМ на один светодиод. Показывает, что цвет — это три независимые яркости.

СветодиодыШИМ
0 просмотров
ESP32

RGB: плавная радуга

Перевод HSV в RGB. Один параметр — оттенок — вместо трёх яркостей.

СветодиодыШИМ
0 просмотров
ESP32

Потенциометр: чтение АЦП

analogRead и 12 бит разрешения. Значение 0…4095 на всю шкалу.

Кнопки и ручкиАналоговый вход
0 просмотров
ESP32

Потенциометр управляет яркостью

Связка вход-выход через map(). Первый пример, где приборы взаимодействуют.

СветодиодыКнопки и ручкиАналоговый вход
0 просмотров
ESP32

Сглаживание показаний АЦП

Скользящее среднее по кольцевому буферу. Сырой АЦП шумит на пару единиц всегда.

Кнопки и ручкиАналоговый вход
0 просмотров
ESP32

Порог с гистерезисом

Один порог заставляет выход дребезжать у границы. Два порога — нет.

СветодиодыКнопки и ручкиАналоговый вход
0 просмотров
ESP32

Звук: одна нота

Пьезоизлучатель на ШИМ. Частота задаёт высоту, скважность — громкость.

ЗвукШИМ
0 просмотров
ESP32

Звук: мелодия по нотам

Массив частот и длительностей. Пауза между нотами нужна, иначе они сливаются.

ЗвукШИМ
0 просмотров
ESP32

Звук: сирена

Частота меняется непрерывно. Тот же приём, что у плавной яркости, но для звука.

ЗвукШИМ
0 просмотров
ESP32

Игра на реакцию

Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.

СветодиодыКнопки и ручки
0 просмотров
ESP32

Реле по расписанию

Периодическое включение нагрузки. Реле — единственный способ управлять чем-то мощнее светодиода.

Реле
0 просмотров
ESP32

Реле от кнопки с фиксацией

Кнопка без фиксации управляет нагрузкой с фиксацией. Состояние держит программа.

Кнопки и ручкиРеле
0 просмотров
ESP32

Сервопривод: развёртка

Угол задаётся длительностью импульса. Библиотека прячет это за градусами.

ДвигательШИМ
0 просмотров
ESP32

Сервопривод по потенциометру

Ручка задаёт угол напрямую. Классический пример пропорционального управления.

ДвигательКнопки и ручкиШИМАналоговый вход
0 просмотров
ESP32

Шаговый двигатель

Полношаговая последовательность на четырёх выводах. Скорость ограничена паузой между шагами.

Двигатель
0 просмотров
ESP32

Аппаратный счётчик импульсов (PCNT)

То же, что «Счётчик импульсов на прерывании», но считает не скетч, а блок PCNT: без обработчика, без volatile и без потерь, когда…

Кнопки и ручки
0 просмотров
ESP32

Минимум и максимум за сеанс

Накопление статистики без массива: достаточно двух переменных и первого замера.

Один проводДатчик
0 просмотров
ESP32

Парктроник

Чем ближе препятствие, тем чаще писк. Расстояние превращается в период — приём, который работает и без дисплея.

ДатчикЗвукШИМ
0 просмотров
ESP32

Ультразвук: медианный фильтр

Одиночный ложный отсчёт у сонара — норма. Медиана из трёх его выбрасывает, среднее — нет.

Датчик
0 просмотров
ESP32

Фоторезистор: уровень освещённости

Сопротивление падает на свету. Абсолютных единиц нет — нужна калибровка по крайним точкам.

ДатчикАналоговый вход
0 просмотров
ESP32

Ночник

Темнее — ярче. Обратная пропорция и гистерезис, чтобы лампа не моргала на границе.

ДатчикСветодиодыАналоговый вход
0 просмотров
ESP32

Счётчик пересечений луча

Фоторезистор как датчик прохода. Считается фронт, а не уровень, иначе один проход даст сотню срабатываний.

ДатчикАналоговый вход
0 просмотров
ESP32

Датчик Холла

Встроен в кристалл ESP32, внешних деталей не нужно. Реагирует на магнитное поле обоими знаками.

0 просмотров
ESP32

Внутренний термодатчик

Показывает температуру кристалла, а не воздуха: под нагрузкой она заметно выше комнатной.

0 просмотров
ESP32

Кодовый замок

Ввод накапливается в строку и сравнивается с образцом. Сброс по звёздочке.

Кнопки и ручкиРеле
0 просмотров
ESP32

Счётчик импульсов на прерывании

Основа для расходомера, тахометра, счётчика оборотов: считать в обработчике, считать частоту в loop().

0 просмотров
ESP32

Измерение напряжения делителем

АЦП принимает максимум 3.3 В. Делитель расширяет диапазон, а коэффициент возвращается в коде.

0 просмотров
ESP32

Термистор NTC

Уравнение Стейнхарта–Харта в упрощённой форме: сопротивление в градусы через бета-коэффициент.

Кнопки и ручкиАналоговый вход
0 просмотров
ESP32

Сканер шины I2C

Первое, что запускают, когда датчик на шине не отвечает: перебор всех адресов.

0 просмотров
ESP32

Датчик влажности почвы

Аналоговый вход и обратная шкала: чем влажнее, тем меньше сопротивление и ниже показание.

Кнопки и ручкиАналоговый вход
0 просмотров
ESP32

Автополив

Датчик, порог, насос через реле и обязательная пауза после полива: воде нужно время дойти до датчика.

Кнопки и ручкиРелеАналоговый вход
0 просмотров
ESP32

Датчик движения

PIR выдаёт готовый цифровой уровень. Вся сложность — в удержании света после последнего движения.

Светодиоды
0 просмотров
ESP32

Усреднение по времени

Экспоненциальное сглаживание: одна переменная вместо буфера, коэффициент задаёт инерцию.

Кнопки и ручкиАналоговый вход
0 просмотров
12 В

Почему 60 ампер-часов не значит 60 ампер в течение часа

Тот же аккумулятор, но нагрузка стартерная: две сотни ампер. Паспортная ёмкость измерена неспешным двадцатичасовым разрядом, и при…

6 просмотров
ESP32

OLED: график значения

Кольцевой буфер и столбики. Показывает не только текущее значение, но и как оно менялось.

I2CДисплейКнопки и ручкиАналоговый вход
0 просмотров
ESP32

ИК-пульт: приём кода

Приёмник ловит кадр пульта, а разбирает его блок RMT: импульсы по полмиллисекунды скетч поймать не успеет. Нажмите на кружок приём…

Кнопки и ручки
0 просмотров
ESP32

LCD: бегущая строка

Текст длиннее шестнадцати символов показывается окном, которое ползёт по строке.

I2CДисплей
1 просмотров
ESP32

OLED SSD1306: первый вывод

128x64 точки. Всё рисуется в буфер, на экран попадает по display().

I2CДисплей
0 просмотров
ESP32

OLED: крупные цифры

Перерисовка кадра целиком: очистка, вывод, display(). Так делается любая динамика.

I2CДисплей
0 просмотров
ESP32

OLED: индикатор выполнения

Рамка, заливка и проценты. Примитивы GFX: прямоугольники и текст.

I2CДисплей
0 просмотров
ESP32

OLED: анимация

Шарик, отражающийся от краёв. Скорость и координаты как состояние между кадрами.

I2CДисплей
0 просмотров
220 В

Ноль горячее фазы: третья гармоника в офисном щитке

Три фазы, на каждой по киловатту компьютеров и светодиодных светильников. Нагрузка распределена идеально, перекоса нет — а в нулев…

6 просмотров
ESP32

NeoPixel: адресные светодиоды

Одна линия данных на всю ленту. Цвет каждого пикселя задаётся отдельно, показывается по show().

Светодиоды
0 просмотров
ESP32

NeoPixel: радуга по ленте

Оттенок зависит от позиции и времени — волна цвета вдоль ленты.

Светодиоды
0 просмотров
ESP32

NeoPixel: шкала уровня

Лента как линейный индикатор: зелёный, жёлтый, красный по мере роста значения.

СветодиодыКнопки и ручкиАналоговый вход
0 просмотров
ESP32

NeoPixel: эффект огня

Случайное мерцание в тёплой части палитры. Простейший генеративный эффект.

Светодиоды
0 просмотров
Mega

Arduino Mega: пятнадцать выводов с ШИМ

Главная причина брать Mega — не память, а выводы. ШИМ здесь на пятнадцати выводах против шести у Uno, и четыре светодиода с плавно…

Светодиоды
5 просмотров