Куча датчиков..а перерывания...одно(несколько) ...
- Войдите на сайт для отправки комментариев
перерывания...с нехваткои входов/выходов (при общеи несложности скетча и ненадобхости многих плат) боремся с помощю мултиплексеров/деплексеров но...скажем 80 выходов по очереди с помощю пяти мултиплексеров худо-бедно запитаем (а на каждом ещё по H-bridge висит - значит в двоине)..40 датчиков по очереди опросим (хочу дать знать ардуинке где мои поезда на трассе чтобы сбавить скорость или остановится где надо дабы недопустить аварий )...но непропустим ли что-то? Срабатывание магнетического датчика например ...,ведь надо также остальнои код отработать. А если соеденить все вместе к интеррапту все датчики и по срабатыванию одного в куче бистро проверить который? Что-то сгорит ? Или просто есть ещо проще решение ?
Как-то очень сумбурно написано.
Чего Вы хотите то?
если соеденить вместе к интеррапту все датчики и по срабатыванию одного в куче бистро проверить который? Что-то сгорит ? Или просто есть ещо проще решение ?
если соеденить вместе к интеррапту все датчики и по срабатыванию одного в куче бистро проверить который? Что-то сгорит ? Или просто есть ещо проще решение ?
если есть время "быстро проверить все датчики" - так и проверяйте их в цикле, тут и интеррапт не нужен.
А вообще есть базовое решение - на прерывание сажаются только датчики, необходимое время реакции на которые составляет микросекунды. Все прочие датчики, типа кнопок, термометров, весов, датчиков давления - опращиваются обычным поллингом. Я не очень разбираюсь в моделях, но мне представляется. что в вашей системе датчиков со временем реакции 10-20 микросекунд нет вовсе.
Наверное вы правы.Датчиков со временем реакции 10-20 микросекунд нет вовсе...а подключить можно? Не сгорит?
А мне PCF8575 c монтажным ИЛИ на прерывании видится (самому такое не требовалось, не делал). Дернуло, считали данные, проверили биты, приняли решение. Но, это для горы датчиков а-ля кнопка. ИМХО.
ds2406 на каждый датчик, шина 1-wire, три провода и кусочек кода избавят вас от горы проводов, и будет понятно какой именно сработал
а ещё есть такое понятие диодная развязка
1-wire разве на прерывании работает?
PCF-ка - самое простое, на мой взгляд, решение. Там и антидребезг на борту есть, как я помню.
Хотя, конечно, надо на макет смотреть - не идут ли там провода по 10 метров к каждой точке.
1-wire не на прерывании. Но когда много датчиков наверное не лучший вариант. быстродейтвия не будет. Самое простое соединить сигнальные провода всех датчиков через диоды на один пин интеррапт и ничего точно не сгорит .
Новое
Новое
Еще раз: PCF определяет, какой вход у нее сработал и дает с выхода INT сигнал на МК. Вот этот сигнал ловите и потом уже опрашиваете PCF-ку, с которой он прилетел, на предмет замкнутых входов. Правда, на таких длинных проводах я не знаю, насколько будет устойчиво работать PCF.
Мне кажется Вы слишком идеалистически воспринимаете, что мол все само собой как-то образуется.
Для опроса существует масса различных возможностей, в частности, через внешние расширители портов и пр. Т.е. фактически количество подключаемых сигналов не ограничено. А количество прерываний, напротив, ограничено. И, более того: когда Вы опрашиваете какое-либо устройство, Вы уже знаете, кто Вам отвечает (тот, кого Вы опрашиваете), а в случае с прерыванием от более чем одного устройства Вам еще предстоит идентифицировать отправителя, что, как правило, оказывается значительно сложнее.
Опрашивать надо неспорю, но только после того, как сработает(может только раз за 5-7 сек.).
Еще раз: PCF определяет, какой вход у нее сработал и дает с выхода INT сигнал на МК. Вот этот сигнал ловите и потом уже опрашиваете PCF-ку, с которой он прилетел, на предмет замкнутых входов. Правда, на таких длинных проводах я не знаю, насколько будет устойчиво работать PCF.
А разве он даёт сигнал без опроса по конкретному адресу?Если я правильно понимаю то PCF надо опрашивать.
И, более того: когда Вы опрашиваете какое-либо устройство, Вы уже знаете, кто Вам отвечает (тот, кого Вы опрашиваете), а в случае с прерыванием от более чем одного устройства Вам еще предстоит идентифицировать отправителя, что, как правило, оказывается значительно сложнее.
Написать код опроса непроблема...просто если есть возможность упростить, почемуже нет.
Еще раз: PCF определяет, какой вход у нее сработал и дает с выхода INT сигнал на МК. Вот этот сигнал ловите и потом уже опрашиваете PCF-ку, с которой он прилетел, на предмет замкнутых входов. Правда, на таких длинных проводах я не знаю, насколько будет устойчиво работать PCF.
А разве он даёт сигнал без опроса по конкретному адресу?Если я правильно понимаю то PCF надо опрашивать.
Она делает дрыг при изменении на входе. Потом уже опрашиваем и смотрим какой канал сработал.
The PCF8575 provides an open-drain interrupt (INT) output, which can be connected to the interrupt input of a microcontroller. An interrupt is generated by any rising or falling edge of the port inputs in the input mode. After time, tiv, the signal INT is valid. Resetting and reactivating the interrupt circuit is achieved when data on the port is changed to the original setting, or data is read from or written to the port that generated the interrupt.
Так же: MCP23017 - INTA and INTB Can Be Configured to Operate Independently or Together
О вот это дело...Будем пробовать.Спасибо!