Чтение аналоговых датчиков - АЦП ESP32
До сих пор ваш ESP32 задавал миру только вопросы да или нет: нажата кнопка или нет? На выводе HIGH или LOW? Но большая часть реального мира устроена не по принципу «да или нет». Свет не бывает просто «включён» или «выключен» - он тусклый, средний или ослепительно яркий. Температура не бывает «горячей или холодной» - она равна 19,4 градуса, или 23,1, или 31,7. Ручка регулятора не просто «влево или вправо» - она повёрнута ровно на 37% всего оборота.
Чтобы измерять эти плавные, промежуточные величины, ESP32 использует специальный аппаратный узел, называемый АЦП - аналого-цифровой преобразователь. Один этот урок превращает вашу плату из простого считывателя переключателей в настоящий измерительный прибор. К концу вы соберёте работающий автоматический ночник, который сам включает светодиод, когда в комнате темнеет.
Чему вы научитесь
- Что на самом деле делает АЦП: превращает непрерывное напряжение в целое число.
- 12-битный АЦП ESP32, его диапазон
0-4095и как работаетanalogRead(). - Чем ESP32 отличается от более старого Arduino Uno (10 бит,
0-1023). - Аттенюация, полезный диапазон напряжений и почему показания «странно себя ведут» у самого верха и низа.
- Два блока АЦП (ADC1 и ADC2) и золотое правило: ADC2 перестаёт работать при включённом WiFi.
- Как фоторезистор (LDR) плюс один постоянный резистор образуют делитель напряжения - с реальной формулой и реальными числами.
- Как превратить сырые показания в полезные значения: масштабирование, калибровка и подавление шума.
- Как собрать полноценный самонастраивающийся ночник и как исправить «прыгающие» показания.