Прерывания и спящий режим

boris92
Offline
Зарегистрирован: 12.07.2014

 

Как я понял, прерывания в Arduino UNO выполняются только с использованием цифровых выходов 1 и 2. С помощью прерываний мне необходимо будить контроллер. Хорошо, хоть с усыплением разобрался. Но беда в том, что это нужно сделать с использованием ик-датчика расстояний TCR 5000. Возможно ли такое без усложнения принципиальной схемы? 

P.S. у меня уже есть прерывание, в котором выполняются часы реального времени

set_sleep_mode(SLEEP_MODE_PWR_DOWN); выбрал этот режим сна

axill
Offline
Зарегистрирован: 05.09.2011

если ваш датчик может менять состояние на цифровом входе ардуины то она может просыпаться из выбранного вами режима power down

вообще-то у атмега328 две системы внешних прерываний, одни INT0/INT1, это как раз цифровые пин 2 и 3. Но кроме этого есть втораак называемая PCINT. Во второй системе прерывание можно получить правктически от любого пина ардуины, даже от аналоговых (по гическому уровню). Кроме того можно настроить прерывание и на аналоговый сигнал. Единственное в стандартной библиотекеердуино есть только настройка INT0/INT1, но вы легко можете настроить другие варианты сами по даташиту или найдя сторонюю библиотеку

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

axill пишет:

если ваш датчик может менять состояние на цифровом входе ардуины то она может просыпаться из выбранного вами режима power down

TCRT5000 - это, фактически, оптопара с транзистором на принимающей стороне. :)

axill
Offline
Зарегистрирован: 05.09.2011

спасибо) лень было за ТС в даташит смотреть.

ну так получается логический выход - то, что нужно