В качестве датчика я намереваюсь использовать следующее купленное на Aliexpress устройство:
Модель: LP-GF24
RED — VCC
WHITE — GND
BLUE — DATA
2174 импульсов на 1 литр
Скорее всего оно было скопировано с этого устройства:
В этом блоге ругают копию. На ebay можно купить оригинал. Попробую пока с тем датчиком, который уже купил. Импульсы он честно выдает, а как себя будет вести, когда будет подключен к топливопроводу — посмотрим.
Я подключил датчик ко второму пину Arduino Pro Mini, чтобы считать импульсы, приходящие от него. Для этого я буду обрабатывать прерывание 0. Уже в процессе сборки добавил подтягивающий вниз резистор 10k на второй пин, на схеме его нет.
Кабель к датчику нужен экранированный, я использовал FTP патч корд.
//***************************************************************** //* Инициализация подсистемы подсчета расхода топлива //***************************************************************** void setupFuelMeter(void) { attachInterrupt(fuelMeterInt, ISRfuelMeter, RISING); // Разрешения прерывания } //***************************************************************** //* Обработчик прерывания - импульс счетчика топлива //***************************************************************** void ISRfuelMeter(void) { app.fuelPulsesAll.number++; app.fuelPulsesLate.number++; }
Переменные были определены как volatile:
volatile UnsignedLong_Bytes fuelPulsesAll; // Расход топлива в импульсах с момента установки счетчика volatile UnsignedLong_Bytes fuelPulsesLate; // Расход топлива в импульсах с момента заправки