Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Arduino Nano: выводы A6 и A7, которые только читают
У Nano на два аналоговых входа больше, чем у Uno. Но digitalWrite и pinMode на них не работают вовсе — не запрещены, а физически н…
Кнопка: чтение состояния
Подтяжка внутри контроллера и инверсия логики: нажатая кнопка даёт LOW. Первое, обо что спотыкаются все.
OLED: график значения
Кольцевой буфер и столбики. Показывает не только текущее значение, но и как оно менялось.
Кнопка через прерывание
Обработчик вместо опроса. Показывает volatile и IRAM_ATTR — без них работать не будет.
Короткое и длинное нажатие
Одна кнопка — две команды. Различаются по длительности удержания.
Arduino Uno: прерывание по фронту
На Uno прерывания по фронту есть только на выводах 2 и 3 — это первое, обо что спотыкаются переносящие код с ESP32, где их можно п…
Пробуждение кнопкой
Просыпается не по времени, а по внешнему сигналу. Вывод должен быть из числа RTC-выводов.
Кнопка зажигает светодиод
Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.
Конечный автомат
Состояния, переходы и таблица. Способ описать поведение прибора, который перестаёт помещаться в if-ы.
Реле от кнопки с фиксацией
Кнопка без фиксации управляет нагрузкой с фиксацией. Состояние держит программа.
Arduino Uno: кнопка со внутренней подтяжкой
Кнопка на выводе 2 без единого резистора: подтяжка включается в самом контроллере. Заодно видно, почему нажатие читается как LOW…
Arduino Uno: переменный резистор и монитор порта
Аналоговый вход даёт 0–1023, а не 0–4095: у Uno десять разрядов против двенадцати у ESP32. Числа уходят в монитор порта — и сразу…
Игра на реакцию
Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.
Arduino Uno: нажал — включил, нажал — выключил
Кнопка без фиксации, а свет с фиксацией. Ловится не уровень на выводе, а момент перехода — иначе светодиод мигает всё время, пока…
Антидребезг кнопки
Механический контакт при нажатии дребезжит несколько миллисекунд. Без фильтра одно нажатие считается десятком.
Веб-сервер: JSON с показаниями
Машиночитаемый ответ вместо страницы. Откройте «Веб-интерфейс» и наберите /data — отсюда данные забирает что угодно, от скрипта до…
Сравнение фильтров
Скользящее среднее, экспоненциальное и медиана на одних данных. Видно, чем они отличаются на выбросах.
Arduino Uno: переключатель режимов
Переключатель на три вывода: средний идёт на плату, крайние на землю и питание. От кнопки отличается тем, что положение держит сам…
NeoPixel: шкала уровня
Лента как линейный индикатор: зелёный, жёлтый, красный по мере роста значения.
Кнопка-триггер
Нажал — включилось, нажал ещё раз — выключилось. Реакция на фронт, а не на уровень.
Метроном
Темп задаётся потенциометром, щелчок — коротким импульсом. Пример совместной работы трёх устройств.
Потенциометр: чтение АЦП
analogRead и 12 бит разрешения. Значение 0…4095 на всю шкалу.
Arduino Uno: клавиатура 4x4 без библиотеки
Шестнадцать кнопок на восьми выводах. Сканирование по строкам занимает двадцать строк кода и объясняет, почему у клавиатуры именно…
Arduino Uno: прерывание на любом выводе
Обход правила про выводы 2 и 3. У ATmega328P есть второй механизм прерываний, доступный на каждом выводе — ценой одного обработчик…