Съдържание:
- Стъпка 1: Какво представлява този таймер за наблюдение?
- Стъпка 2: Как да активирате таймера за наблюдение?
- Стъпка 3: Поддържайте програмата си работеща
- Стъпка 4: Примерна употреба
- Стъпка 5: Проблеми с таймера за наблюдение
- Стъпка 6: Насладете се
Видео: Arduino Hang Guardian - Arduino Watchdog Timer Урок: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Здравейте всички, Случва се на всички нас. Изграждате проект, с ентусиазъм свързвате всички сензори и изведнъж Arduino виси и никакъв вход не се обработва.
„Какво става?“, Ще попитате и ще започнете да ровите в кода си, само за да осъзнаете, че сте заседнали в безкраен цикъл. Слава Богу, Arduino беше на пейката ви, а не на отдалечено място.
Днес ще разгледаме как можем да използваме таймера за наблюдение на Arduino, за да предотвратим това.
Стъпка 1: Какво представлява този таймер за наблюдение?
Таймерът за наблюдение на Arduino, както подсказва името, е таймер, който работи отделно от основния процесор на дъската. Този таймер може да се използва за периодична проверка на състоянието на платката и при обстоятелства, при които платката се е забила в софтуерен цикъл или е заседнала поради хардуерна повреда, таймерът за наблюдение може да нулира Arduino и да го стартира отново.
По подразбиране, когато не се използва, този таймер е деактивиран за всички проекти и само когато го активираме, трябва да сме сигурни, че периодично ще му казваме да не нулира борда, ако все още работи според очакванията.
За да можем да използваме таймера за наблюдение, първо трябва да включим файла avr/wdt.h в нашата скица на Arduino. Това е стандартната библиотека, която съхранява контролните действия.
Стъпка 2: Как да активирате таймера за наблюдение?
За да активираме таймера, използваме функцията “wdt_enable”, където трябва да преминем през праговия интервал, при който платката ще бъде нулирана. В зависимост от нашия случай на използване, това може да бъде от 15 милисекунди до 8 секунди в предварително дефинирани настройки, които се съдържат в библиотеката за наблюдение.
ПРАГ - ПОСТОЯННО ИМЕ
15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S
Стъпка 3: Поддържайте програмата си работеща
Сега, когато таймерът е активиран, за да предотвратим нулирането на нашия Arduino, трябва периодично да извикваме функцията „wdt_reset“, за да нулираме таймера за наблюдение, преди да изтече праговият интервал.
При избора на интервал за нулиране е от решаващо значение да вземем предвид всяка продължителна операция като четене или изпращане на данни или свързване към външни сензори. Прагът за нулиране трябва да бъде поне един и половина пъти по -голям от тези времена, за да се предотвратят случайни нулиране.
Стъпка 4: Примерна употреба
В примерната програма, която можете да изтеглите тук, първо настроихме таймера за наблюдение с интервал за нулиране от 4 секунди. След това, за да знаем, че сме във функцията за настройка, мигаме светодиод 3 пъти бързо и след това в основния контур първо нулираме таймера, светваме светодиод с постепенно по -дълги интервали и след това го изключваме. Следващият цикъл нулира таймера отново, докато времето за запалване е по-дълго от 4 секунди.
Когато това се случи, таймерът за наблюдение нулира дъската и настройката се изпълнява отново.
Стъпка 5: Проблеми с таймера за наблюдение
Един възможен проблем с таймера за наблюдение, в зависимост от зареждащия механизъм на вашия Arduino, е, че ако стойността на таймера за наблюдател е твърде ниска и буутлоудърът не нулира таймера при качване на нов код, може да повредите дъската си Arduino по такъв начин, че винаги ще се забие във фазата на зареждане. Буутлоудърът ще се опита да стартира, но таймерът ще продължи да нулира платката, като никога не й позволява да стартира правилно. За да предотвратите подобни проблеми, винаги използвайте прагови интервали от 2 секунди или повече.
Стъпка 6: Насладете се
Ако имате пример къде сте използвали таймера за наблюдение в истински проект, уведомете ме в коментарите, уверете се, че видеото ви харесва и не забравяйте да се абонирате.
Наздраве и благодаря за четенето/гледането!
Препоръчано:
Raspberry Pi - TMD26721 Инфрачервен цифров детектор за близост Java Урок: 4 стъпки
Raspberry Pi-TMD26721 Инфрачервен цифров детектор за близост Java Урок: TMD26721 е инфрачервен цифров детектор за близост, който осигурява пълна система за откриване на близост и логика на цифров интерфейс в един 8-пинов модул за повърхностен монтаж. Откриването на близост включва подобрен сигнал към шум и точност. Професионалист
Урок за асемблер на AVR 2: 4 стъпки
AVR Assembler Tutorial 2: Този урок е продължение на " AVR Assembler Tutorial 1 " Ако не сте преминали през Урок 1, трябва да спрете сега и първо да направите това. В този урок ще продължим нашето проучване на програмирането на асемблерен език на atmega328p u
Steampunked Dream Guardian Night Light: 9 стъпки (със снимки)
Steampunked Dream Guardian Night Light: Здравейте на всички Мой близък приятел ме помоли да създам годежен подарък (разбира се освен пръстена!) За приятелката му преди няколко седмици. И двамата са като мен, доброволци пожарникари и обичат Steampunk Objects. Приятелят ми се сети за
Eye Guardian: Звуково задействане Защита на очите: 9 стъпки (със снимки)
Eye Guardian: Звуково задействана защита на очите: Eye Guardian е захранвана с Arduino, високодецибелна непрекъсната звукова защита, носеща защита за очи. Той открива звука на тежко оборудване и понижава защитните очила, докато оборудването се използва. Очертание В първата стъпка ще обясня Inspirati
Pi Guardian: 6 стъпки (със снимки)
The Pi Guardian: Искали ли сте някога да хванете този човек, който продължава да краде вашите бонбони за Хелоуин? Или какво ще кажете за онзи досаден съквартирант, който няма да остави хладилника ви сам? С помощта на Raspberry Pi 3, Pi Camera и PIR сензор всичко това вече е възможно. Симпл