Почему считывание идёт с помпы (подключённая к реле), а не с датчика расхода воды?
Проблема в том, что считывание идёт с помпы (подключённая к реле), а не с датчика расхода воды. Код проблемной части:
uint8_t pinSensor = 2; // Определяем номер вывода Arduino, к которому подключён датчик расхода воды.
//
float varQ; // Объявляем переменную для хранения рассчитанной скорости потока воды (л/с).
float varV; // Объявляем переменную для хранения рассчитанного объема воды (л).
const int pompa = 8; // помпа подключённая через реле на8 контакте
void setup() {
Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта.
pinMode(pinSensor, INPUT); // Конфигурируем вывод к которому подключён датчик, как вход.
varQ = 0; varV = 0; // Обнуляем все переменные.
}
void loop() {
pinMode(pompa, OUTPUT);
varQ = 0; // Сбрасываем скорость потока воды.
uint32_t varL = pulseIn(pinSensor, HIGH, 200000); // Считываем длительность импульса, но не дольше 0,2 сек.
if ( varL ) { // Если длительность импульса считана, то ...
float varT = 2.0 * (float)varL / 1000000; // Определяем период следования импульсов в сек.
float varF = 1 / varT; // Определяем частоту следования импульсов в Гц.
varQ = varF / 450.0f; // Определяем скорость потока воды л/с.
varV += varQ * varT; // Определяем объем воды л.
} //
// Выводим рассчитанные данные: //
Serial.println((String) "Объем " + varV + "л, скорость " + (varQ * 60.0f) + "л/м.");
digitalWrite(pompa, LOW); // Включение помпы через реле
}
Подключение у меня на ардуино уно на словах:
5v - COM и VCC на реле и датчик расхода (красный провод)
GND - к реле на GND, помпе (чёрный провод) и к датчику расхода воды (чёрный провод)
Контакт 8 - К реле на IN
Контакт 2 - к датчику расхода воды (жёлтый провод)
NO на реле - к плюсу помпы (красный провод).