YF-S201C Датчик расхода жидкости 4 шт.

slus
Offline
Зарегистрирован: 26.04.2016

Есть Arduino mega 2560/

4 датчика расхода. Как одновременно можно считать показания импульсов. Через прирывания будет пропуск импульсов из-за приоритетности портов.

slus
Offline
Зарегистрирован: 26.04.2016

Включатся датчики будут не одновременно.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Поставить 4 независимых счетчика, все остальное варианты равновероятно начнут пропускать импульсы.

strarbit
strarbit аватар
Онлайн
Зарегистрирован: 12.06.2016

Прерывание не имеет значение датчик какой и читать порты в 1 момент, далее применить логическая маска, знать прерывание от датчик какой. 

slus
Offline
Зарегистрирован: 26.04.2016

sadman41 пишет:

Поставить 4 независимых счетчика, все остальное варианты равновероятно начнут пропускать импульсы.


То есть четыре ардуины нано например? Или какие счётчики Вы имеете ввиду?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Если способ strarbit вам не подходит, то могу предложить посмотреть на PCF8583 (https://www.nxp.com/docs/en/data-sheet/PCF8583.pdf) в режиме "event-counter".

slus
Offline
Зарегистрирован: 26.04.2016

strarbit пишет:

Прерывание не имеет значение датчик какой и читать порты в 1 момент, далее применить логическая маска, знать прерывание от датчик какой. 


Не понял как применить логическую маску. Если один датчик даёт даёт импульсы, другие операции не будут срабатывать. Или будут с пропусками.

strarbit
strarbit аватар
Онлайн
Зарегистрирован: 12.06.2016

slus пишет:
strarbit пишет:

Прерывание не имеет значение датчик какой и читать порты в 1 момент, далее применить логическая маска, знать прерывание от датчик какой. 

Не понял как применить логическую маску. Если один датчик даёт даёт импульсы, другие операции не будут срабатывать. Или будут с пропусками.

нет пропуск. другие операции будут срабатывать. http://arduino.ru/forum/programmirovanie/dopolnitelnye-vneshnie-preryvan...

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Кмк, strarbit права: вешаем обработчик PCINT на целый порт, в обработчике по битовой маске смотрим - чего там сработало. Сработали пару датчиков одновременно - будет два бита выставлено.

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Тогда придется наворачивать свой "диспетчер", как я понимаю. Он будет фиксировать - был ли переход или пин висит в учитываемом состоянии с предыдущего срабатывания.

И мне не совсем понятно, что будет в клинических случаях - например, пока мы висим в обработчике, пин успел сделать вкл-выл. Понятное дело, что вероятность будет малой, если обработчик не затянут по времени, но 100% проблемы это не решает. Так что вопрос к допускам и посадкам, как грицца.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

sadman41 пишет:

Тогда придется наворачивать свой "диспетчер", как я понимаю. Он будет фиксировать - был ли переход или пин висит в учитываемом состоянии с предыдущего срабатывания.

И мне не совсем понятно, что будет в клинических случаях - например, пока мы висим в обработчике, пин успел сделать вкл-выл. Понятное дело, что вероятность будет малой, если обработчик не затянут по времени, но 100% проблемы это не решает. Так что вопрос к допускам и посадкам, как грицца.

1. один байт - предыдущее состояние битовой маски;

2. согласен.