Почему считывание идёт с помпы (подключённая к реле), а не с датчика расхода воды?

Проблема в том, что считывание идёт с помпы (подключённая к реле), а не с датчика расхода воды. Код проблемной части:

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 на реле - к плюсу помпы (красный провод).


Ответы (1 шт):

Автор решения: minibosha

Проблема была в том, что у меня было неправильно подключено реле.

→ Ссылка