esplab
Сведения о чипе
Ревизия, число ядер, объём флеша, MAC-адрес, свободная память. Первое, что стоит вывести в незнакомом железе.
Слежение за утечкой памяти
Куча, которая только уменьшается, — признак утечки. Здесь она создаётся намеренно, чтобы увидеть, как это выглядит.
Сторожевой таймер
Зависшую задачу должен кто-то перезапустить. Сторож делает это, если её не гладить вовремя.
Причина перезагрузки
После неожиданного рестарта первое, что нужно знать: питание, сторож или паника.
Случайные числа
esp_random() берёт энтропию из аппаратного генератора. random() без засева даёт одну и ту же последовательность.
Проверка выводов
Перебор безопасных выводов с переключением. Помогает найти обрыв в макетке.
Конечный автомат
Состояния, переходы и таблица. Способ описать поведение прибора, который перестаёт помещаться в if-ы.
Сравнение фильтров
Скользящее среднее, экспоненциальное и медиана на одних данных. Видно, чем они отличаются на выбросах.
Лампа и выключатель: первая цепь
Самая простая рабочая схема: блок питания, тумблер и лампа на 12 вольт. С неё начинается всё остальное — здесь видно, что такое за…
Параллельное соединение: две лампы в полный накал
Две одинаковые лампы, подключённые параллельно. На каждой полные двенадцать вольт, каждая горит как одна, а ток от источника удваи…
Последовательное соединение: почему лампы горят вполнакала
Те же две лампы, но включённые друг за другом. Двенадцать вольт делятся между ними пополам, ток падает вдвое, а мощность каждой…
Светодиод и расчёт резистора
Светодиоду нужен не вольтаж, а ток: подключённый напрямую, он сгорает мгновенно. Здесь стоит резистор 510 Ом — ровно тот, что даёт…
Амперметр и вольтметр: как их включать
Два прибора, которые путают чаще всего. Амперметр включается в разрыв цепи и меряет то, что через него течёт. Вольтметр — параллел…
Предохранитель и короткое замыкание
Рабочая цепь с предохранителем на 5 А и вторым тумблером, который замыкает лампу накоротко. Пока он разомкнут — всё исправно; замк…
Реле: слабая кнопка управляет сильной нагрузкой
Кнопка в салоне не рассчитана на ток звукового сигнала. Поэтому кнопка включает катушку реле — тридцать миллиампер, — а контакт ре…
Габаритные огни: проводка автомобиля
Кусок настоящей автомобильной схемы: аккумулятор, предохранитель, подрулевой переключатель и две лампы по бортам. Минус берётся не…
Диод от переполюсовки
Диод пропускает ток в одну сторону и запирает в другую. Поставленный последовательно, он спасает схему от подключения питания наоб…
Мотор через реле и обратный диод
Реле включает мотор, а параллельно катушке реле стоит диод. В модели он ничего не меняет, и это честно сказано в разборе: обратный…
Свет в комнате: автомат, выключатель, светильник
Самая частая схема в квартире, собранная правильно. Фаза идёт с автомата на выключатель, с выключателя — на светильник; ноль прихо…
Ошибка: выключатель в разрыве нуля
Схема, которая работает и потому живёт в квартирах годами. Свет включается и выключается как положено, но фаза приходит на светиль…
Проходные выключатели: свет из двух мест
Схема для коридора и лестницы: два проходных выключателя, между ними две перемычки. Каждый выключатель меняет свет на противополож…
Двухклавишный выключатель на две группы света
Одна фаза приходит на выключатель, две уходят на разные светильники. Так делают люстру с раздельным включением рожков — и так же э…
Розеточная группа: автомат, УЗО и заземление
Как положено делать розетки: автомат 16 А защищает кабель, УЗО на 30 мА защищает человека, третий контакт розетки соединён с шиной…
Пробой на корпус: зачем нужно УЗО
У прибора в розетке пробита изоляция — фаза оказалась на корпусе. Корпус заземлён, ток утечки уходит по защитному проводнику мимо…
Без заземления и без УЗО: что происходит с человеком
Та же неисправность, но розетка без защитного проводника и без дифзащиты. Ток находит единственный доступный путь на землю — через…
Короткое замыкание и характеристика автомата
Фаза замкнута на ноль без нагрузки. Ток ограничен только сопротивлением проводки, автомат отключается мгновенно — не по тепловому…
Щиток однокомнатной квартиры
Собранный целиком щиток: ввод, счётчик, вводной автомат, противопожарное УЗО и три группы — свет, розетки комнаты, розетки кухни…
Датчик движения и контактор
Датчик движения рассчитан на несколько ампер и не тянет освещение подъезда напрямую. Он включает катушку контактора, а силовые кон…
Поворотники: замок зажигания и реле-прерыватель
Реле-прерыватель — деталь, которая мигает сама. Пока на неё подано питание, она размыкает и замыкает свой контакт с постоянным пер…
Генератор и аккумулятор: откуда берётся ток при работающем моторе
Заглушённый двигатель — питание от аккумулятора, 12,6 В. Заведённый — генератор выдаёт 14,2 В, берёт нагрузку на себя и заряжает а…
Длинный провод: почему в конце линии меньше вольт
Двадцать метров тонкого провода до фонаря в гараже. Сопротивление жилы складывается с сопротивлением лампы, часть напряжения остаё…
Трёхфазный ввод: распределение нагрузки и перекос фаз
Три фазы заводят туда, где одной не хватает: дом, мастерская, дача с электрокотлом. Нагрузка делится по фазам руками, и делится вс…
Сечение кабеля и номинал автомата
Автомат защищает не прибор, а провод. Пара «C16 на кабеле 1,5 мм²» — самая частая ошибка домашнего щитка: при нагрузке в двадцать…
Косинус фи: почему двигатель берёт больше, чем написано на шильдике
Двигатель на 1,1 кВт при косинусе 0,8 берёт из сети около 6 ампер, а не 4,8, как следовало бы из одной мощности. Разницу даёт реак…
Трёхфазный двигатель: почему он не нагружает ноль
Три обмотки, соединённые звездой, сходятся в общей точке, к нулю сети не присоединённой. При исправных обмотках сумма трёх токов в…
Селективность: чтобы утечка в ванной не гасила весь дом
Два УЗО одно за другим — схема, которая выглядит надёжной и работает неправильно. При утечке в группе отключаются оба сразу, и вме…
Пуск двигателя: почему автомат ставят характеристики D
Пока ротор стоит, обмотка двигателя — это почти закороченный трансформатор: ток в шесть раз выше рабочего, косинус фи около трёх д…
Нагрев жилы: почему перегруженный кабель годами молчит
Кабель, нагруженный сверх допустимого, не перегорает и не выбивает автомат. Он просто греется. Изоляция при этом не плавится — она…
Ноль горячее фазы: третья гармоника в офисном щитке
Три фазы, на каждой по киловатту компьютеров и светодиодных светильников. Нагрузка распределена идеально, перекоса нет — а в нулев…
На сколько хватит аккумулятора: расчёт времени работы
Аккумулятор на 7 ампер-часов и лампа на 12 ватт. Ампер-часы с наклейки делить на ток нельзя дважды: во-первых, свинцовому аккумуля…
Габариты забыли выключить: когда машина не заведётся
Аккумулятор 60 ампер-часов и две габаритные лампы по 5 ватт. Ток меньше ампера, и кажется, что этого хватит надолго. Схема считает…
Почему 60 ампер-часов не значит 60 ампер в течение часа
Тот же аккумулятор, но нагрузка стартерная: две сотни ампер. Паспортная ёмкость измерена неспешным двадцатичасовым разрядом, и при…
Arduino Uno: мигание встроенным светодиодом
Первый скетч на Uno. Светодиод припаян к плате на выводе 13 — подключать ничего не нужно, и это лучший способ проверить, что сборк…
Arduino Uno: кнопка со внутренней подтяжкой
Кнопка на выводе 2 без единого резистора: подтяжка включается в самом контроллере. Заодно видно, почему нажатие читается как LOW…
Arduino Uno: плавная яркость и выводы с ШИМ
analogWrite работает не на всяком выводе: на Uno ШИМ есть только на шести. Пример показывает разницу — на одном светодиоде яркость…
Arduino Uno: переменный резистор и монитор порта
Аналоговый вход даёт 0–1023, а не 0–4095: у Uno десять разрядов против двенадцати у ESP32. Числа уходят в монитор порта — и сразу…
Arduino Uno: прерывание по фронту
На Uno прерывания по фронту есть только на выводах 2 и 3 — это первое, обо что спотыкаются переносящие код с ESP32, где их можно п…
Arduino Uno: два ритма без delay
Два светодиода мигают с разной частотой одновременно. С delay так не выйдет ни при каких ухищрениях — и это первое, обо что упирае…
Arduino Uno: нажал — включил, нажал — выключил
Кнопка без фиксации, а свет с фиксацией. Ловится не уровень на выводе, а момент перехода — иначе светодиод мигает всё время, пока…
Arduino Uno: светофор на состояниях
Три светодиода и четыре фазы. Написано машиной состояний, а не цепочкой delay — потому что светофор, который нельзя переключить кн…
Arduino Uno: ручка яркости
Переменный резистор крутит яркость светодиода. Между входом и выходом стоит map: у входа 1024 значения, у ШИМ — 256, и переводить…
Arduino Uno: сглаживание показаний
Показания аналогового входа дрожат в последних разрядах всегда. Скользящее среднее убирает дрожь, и на графике сразу видно, чем за…
Arduino Uno: ночник с гистерезисом
Фоторезистор включает свет в темноте. Порогов два, а не один — иначе на границе освещённости лампа щёлкает по десять раз в секунду…
Arduino Uno: RGB-светодиод и три канала ШИМ
Цвет собирается из трёх яркостей. На Uno под это уходит три из шести выводов с ШИМ — половина запаса платы на один светодиод.
Arduino Uno: переключатель режимов
Переключатель на три вывода: средний идёт на плату, крайние на землю и питание. От кнопки отличается тем, что положение держит сам…
Arduino Uno: клавиатура 4x4 без библиотеки
Шестнадцать кнопок на восьми выводах. Сканирование по строкам занимает двадцать строк кода и объясняет, почему у клавиатуры именно…
Arduino Uno: прерывание на любом выводе
Обход правила про выводы 2 и 3. У ATmega328P есть второй механизм прерываний, доступный на каждом выводе — ценой одного обработчик…
Arduino Uno: таймер 1 ровно раз в секунду
millis плюс проверка в цикле дают приблизительный интервал. Таймер в режиме CTC даёт точный — и срабатывает, даже когда цикл занят…
Arduino Uno: выводы через регистры порта
digitalWrite тратит около пятидесяти тактов на один вывод. Запись прямо в регистр порта — один такт и восемь выводов сразу. Показа…
Arduino Uno: сколько осталось оперативной памяти
У ATmega328P две тысячи байт ОЗУ. Кончается она молча: ни ошибки, ни перезагрузки — плата просто начинает вести себя странно, и бе…