Всё, что было собрано физически из компонентов в предыдущих 22 главах — пороги, таймеры, логика — здесь становится несколькими строками кода. Не потому что схемотехника была "неправильным" способом, а потому что теперь у тебя есть оба инструмента, и понятно, из чего на самом деле состоит код, когда он управляет реальным напряжением и током.
Разница не в том, что микроконтроллер "лучше" — RC-таймер из главы 06 и моностабильный 555 из главы 10 прекрасно работают и без единой строчки кода. Разница в гибкости: изменить время выдержки в коде — это отредактировать одно число и перезалить прошивку; изменить время выдержки в RC-схеме — выпаять конденсатор и впаять другой. Микроконтроллер особенно выигрывает там, где логика должна часто меняться или объединять много условий сразу — ровно то, что в главе 17 потребовало отдельного инвертора для согласования уровней между логическим И и триггером 555.
Цифровой аналог главы 04 — только вместо расчёта R и C для конкретной частоты мигания, частота задаётся прямо числом в коде.
setup() выполняется один раз при включении, loop() повторяется
бесконечно — вся программа Arduino всегда состоит именно из этих двух функций.
Тот же делитель LDR из главы 05, но теперь его напряжение не сравнивается аппаратно с порогом, а считывается напрямую встроенным аналого-цифровым преобразователем (АЦП) микроконтроллера.
АЦП Arduino Uno — 10-битный: он делит диапазон входного напряжения (обычно 0–5В) на 1024 ступени. Значение 0 соответствует примерно 0В, значение 1023 — примерно 5В, промежуточные значения — пропорционально между ними. Это цифровой аналог того же самого измерения, которое раньше делал мультиметр вручную в главах 05 и 13 — только теперь оно происходит автоматически много раз в секунду и сразу доступно программе.
Serial.println() выводит значения в окно "Монитор порта" среды разработки —
удобный способ увидеть, что происходит внутри программы, не подключая осциллограф. Это не
замена приборам из главы 02 (Serial Monitor не покажет реальную форму электрического
сигнала или наводки), но отличное дополнение именно для отладки логики самой программы —
"какое значение датчика сейчас видит код" куда быстрее проверить так, чем щупом.
Готовые модули реле для Arduino почти всегда уже содержат на своей плате транзисторный ключ и обратный диод (та же схема, что собиралась вручную в главе 08) — GPIO микроконтроллера подключается прямо к управляющему входу такого модуля, без отдельной сборки транзисторного каскада. Если же используется "голое" реле без модуля — вся логика главы 08 (расчёт базового резистора, обратный диод) остаётся полностью в силе, просто сигнал управления теперь идёт не от постоянного напряжения через кнопку, а от вывода микроконтроллера.
Вывод Arduino способен отдать лишь около 20–40 мА — этого достаточно для одного светодиода с резистором, но недостаточно для обмотки большинства реле напрямую. Между выводом и обмоткой реле всегда должен быть либо готовый модуль с собственным ключом, либо самостоятельно собранный транзисторный каскад из главы 08 — GPIO управляет базой транзистора, а не питает обмотку реле напрямую.
Прямой цифровой аналог схемы из главы 12 (компаратор с гистерезисом на ОУ), но условие сравнения теперь — обычная строка кода, а не подобранный резистор обратной связи.
Обрати внимание: у этого варианта нет гистерезиса, который был добавлен вручную в главе 12
— на границе порога значение может дребезжать между состояниями точно так же, как
дребезжала кнопка в главе 15. В коде гистерезис добавляется так же осознанно, как в
аппаратной схеме — например, использованием разных порогов для включения и выключения
вместо одного общего threshold.
pinMode() — вывод по умолчанию не гарантированно
настроен как нужно, явное указание входа или выхода в setup() обязательно.Финальная глава книги объединяет отдельное руководство по PIR-датчику, Arduino и реле в один завершённый проект с логикой уже не на дискретных компонентах, а в коде — естественное завершение всего пройденного пути от одного резистора и светодиода до программируемого устройства.
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.