Как вам может быть известно, Arduino (а вернее, микроконтроллер на плате) поддерживает watchdog (сторожевой таймер) который позволяет установить промежуток времени, через который микроконтроллер будет перезагружен, даже если программа зависнет. При этом, сторожевой таймер может быть сброшен программно. Схема работы примерно следующая: «взодим» таймер на некоторое количество секунд, а далее в основной программе постоянно обнуляем счётчик, если всё идёт нормально. Как только мы перестанем обнулять счётчик (а это и может означать зависание), контроллер автоматически перезагрузится по истечению заданного времени. Однако, работа с watchdog должна поддерживаться загрузчиком платы. Дело в том, что после перезагрузки, которая была вызвана watchdog, контроллеры последних выпусков оставляют включенным сторожевой таймер на минимальный период, т.е. 15ms. Это нужно для того, чтобы была возможность внутри программы узнать, что перезагрузка была по watchdog.Поэтому первоочередная задача загрузчика — сохранить информацию о том, что перезагрузка была «неожиданной» и сразу же выключить сторожа. Если этого не сделать, то система уйдет в bootloop, т.е. будет вечно перегружаться. Как известно, в Arduino есть специальный загрузчик, который выполняется в первую очередь после перезагрузки системы. И, к огромному сожалению, стандартный загрузчик не сбрасывает watchdog! Таким образом, система заходит в жестокий bootloop (состояние «crazy led», при котором светодиод на 13-м пине мигает как сумасшедший). Из статьи вы узнаете, как проверить загрузчик своей платы на поддержку watchdog и что делать, если он не поддерживается.
Архив метки: Arduino
Подключение радио-модуля NRF24 к ардуино
Нередко возникают задачи, связанные с необходимостью получать данные от датчиков, находящихся на значительном удалении от управляющего устройства. Простое решение: протянуть пару десятков метров провода. Но в реальности это не всегда возможно. Длинные провода подвержены наводкам. Кроме того, подача питания по длинным проводам часто невозможна из-за высокого сопротивления проводника. Поэтому, источник питания всё равно приходится размещать в непосредственной близости от датчика. О необходимости прятать провода для минимальной эстетической привлекательности тоже не стоит забывать. Всё это подталкивает нас к идее обойтись вовсе без проводов, а именно построить систему передачи данных по радиоканалу. Существует и недорогое решение для беспроводной связи: радио-модуль на базе чипа NRF24. О подключении и работе с одной из разновидностей такого чипа и пойдёт речь в статье. Модуль стоит всего 1 доллар. По ссылке модуль можно купить с бесплатной доставкой у проверенного мной продавца. Или можно купить сразу десяток модулей. Тогда ещё дешевле.
Что такое Arduino
Arduino — это платформа для разработки устройств. Она стала невероятно популярной, потому что позволяет создавать настоящие устройства совершенно неподготовленному человеку. Вам не обязательно знать, как работает транзистор, для чего используется диод и как прошивать микроконтроллер. Выглядит Ардуино, как небольшая плата с контактами. Для того, чтобы начать творить, вы просто подключаете всевозможные компоненты к контактам на плате, задаёте алгоритм работы и взаимодействия компонентов и получаете программируемое электронное устройство, созданное вашими руками! Посмотрите, какие невероятные штуки можно собрать с помощью маленькой платки за очень короткое время: