допилил свой тепловой счётчик до рабочего состояния

Поділитися
Вставка
  • Опубліковано 26 вер 2024

КОМЕНТАРІ • 4

  • @ValeriyDoniy
    @ValeriyDoniy 7 місяців тому

    Шо ты мелешь мельник! :)))))))) Я ничего не имею, но когда ты начинаешь вычисления делай detachInterrupt. Потому что пока ты все посчитаешь и выплюнешь в сомпорт, counter уже может быть не равным нулю. Ну а по хорошему, тебе не нужно считать импульсы, нужно знать период их следования. То есть время между двумя импульсами и по нему вычислять проток.
    const int interruptPin = 2; // Пин, к которому подключен счетчик импульсов (INT0 на Arduino Nano)
    volatile unsigned long previousMillis = 0; // Время последнего импульса
    volatile unsigned long interval = 0; // Интервал времени между импульсами в миллисекундах
    volatile float flowRate = 0.0; // Проток в литрах в час
    void setup() {
    Serial.begin(9600);
    attachInterrupt(digitalPinToInterrupt(interruptPin), countPulse, FALLING); // Прерывание при падении сигнала
    }
    void loop() {
    unsigned long currentMillis = millis();
    if (interval > 0 && currentMillis - previousMillis >= interval) {
    detachInterrupt(digitalPinToInterrupt(interruptPin)); // Отключаем прерывание для измерения
    flowRate = (1000.0 / interval) * 40.0; // Вычисляем проток в литрах в час
    Serial.print("Проток в час: ");
    Serial.print(flowRate);
    Serial.println(" л/ч");
    previousMillis = currentMillis; // Обновляем время последнего импульса
    attachInterrupt(digitalPinToInterrupt(interruptPin), countPulse, FALLING); // Подключаем прерывание заново
    }
    }
    void countPulse() {
    // Эта функция вызывается при каждом импульсе
    // Мы обновляем время последнего импульса и вычисляем интервал
    unsigned long currentMillis = millis();
    interval = currentMillis - previousMillis;
    previousMillis = currentMillis;
    }

    • @Smarodina93
      @Smarodina93  7 місяців тому

      А где у тебя 64.8 импульса на литр?

    • @ValeriyDoniy
      @ValeriyDoniy 7 місяців тому

      @@Smarodina93 А почему ты решил что я могу угадать сколько импульсов на литр в твоем китайском счетчике? Я тебе просто пример привел в котором 40 импульсов. А сколько в твоем - я бп.

    • @Smarodina93
      @Smarodina93  7 місяців тому

      услышал, я не смог догадаться что 40 это как раз коэфициент