Хочу использовать дальномер Sharp GP2Y0A02YK в качестве датчика присутствия (да, небольшой угол и небольшая дальность, я понимаю, это устраивает). То есть, если есть тело в зоне действия дальномера, тогда - логическая 1. Если в его поле зрения ничего - логический 0. Думаю, для этой цели глупо использовать analogRead() или библиотеку для вычисления расстояния. Хочется повесить это дело на прерывание, чтобы "куковало" только в нужные моменты. Слышал, что можно как-то использовать встроенный в Ардуино аналоговый компаратор, чтобы генерить прерывание, когда определенное значение (точнее, падение или возрастание?) будет достигнуто. Как я понял, в этом случае аналоговый датчик подключается к цифровому пину (на котором поддерживаются прерывания) Не может ли кто-то поделиться ссылкой или каким-то примером? Вроде ищу неплохо, но то ли я неправильно формулирую то, что слышал краем уха, то ли это нечасто применяется.
Нашел такой пример https://arduino.stackexchange.com/a/17967 но мало понял (я про код) Не вижу, где интурист задает D6 и D7 в коде, (видимо, это не нужно, поскольку только эти ноги и могут работать, как компаратор?) (А на Меге где их искать?) И не понимаю, как задать "certain threshold".
к датчику нужен компаратор. https://www.google.ru/search?newwin...0#imgdii=TgajBFr_reobFM:&imgrc=xVXx9abJsPsjkM:
Так я же и спрашиваю, как использовать встроенный. Тоже была мысль сделать внешний компаратор и тогда уж просто подключаться к любому цифровому пину с прерыванием. У меня есть такие модули https://ru.aliexpress.com/item/High...n-Module-For-Arduino-AVR-PIC/32530266337.html и такие https://ru.aliexpress.com/item/Reed...tch-MagSwitch-For-Arduino-WC/32671594774.html И там, и там что-то очень похожее на компараторы, поскольку везде стоят LM393. (хотя хотелось бы использовать встроенный)
А чем analog read не угодил?Там же програмно можно настроить уровень срабатывания.А к компаратору внутреннему или внешнему надо лепить обвязку для того же самого.
Да может, это у меня глюк и правда ничего такого не надо. В loop у меня пара таймеров, и только по срабатыванию их разное исполняется. Наверное, ничего страшного не будет, если добавить третий, который с интервалом, скажем, в полсекунды будет делать analog read без всяких прерываний и проч.
Если loop постоянно крутится, то заморачиваться на прерывания нет резона. Ну разве что нужно очень точно определить время срабатывания. Тут есть примеры программ с использованием компаратора набортного http://forum.arduino.cc/index.php?topic=149840.0