#1 Re: Програмування Arduino » Дайте пораду по термоконтролеру з таймером » 2023-12-01 23:40:31

А, ні, вибачаюся, там був ще «залишок» від попередніх спроб, запрацювало, дякую!

#3 Програмування Arduino » Дайте пораду по термоконтролеру з таймером » 2023-12-01 22:23:48

Renderman
відповідей: 4

Всім привіт! підкажіть що роблю не так, купу варіантів перепробував, результат той самий.
Задача: запуск таймера при досягнені заданої температури. Таймер у мене запускається, але тільки температура опускається, він вимикається, а потрібно щоб він працював певний відрізок часу.

#include <SHTSensor.h>
#include <arduino-sht.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>

int heat = 4;
int sec = 0;
int min = 0;
float endTime = 16;
unsigned long timer;
bool timeOff = false;
bool timeStart = false;
bool isGo = false;


LiquidCrystal_I2C lcd(0x27, 16, 2);
SHTSensor sht;


void setup() {

  timer = millis();
  pinMode(heat, OUTPUT);
  Wire.begin();
  lcd.init();
  lcd.backlight();
  sht.init();
}
void loop() {
  int tMax = 32;
  sht.readSample();
  delay(1000);
  lcd.setCursor(0, 0);
  lcd.print("t:");
  lcd.print(sht.getTemperature(), 1);
  if (sht.getTemperature() <= tMax) {
    digitalWrite(heat, HIGH);
  } else {
    digitalWrite(heat, LOW);
  }
  if (sht.getTemperature() >= tMax) {
    delay(100);

    isGo = true;
    coundown();
  }
}
void coundown() {

  if (isGo) { endTime = 0; }
  if (millis() - timer > 1000) {
    timer = millis();
    sec = sec + 1;
    if (sec > 59) {
      sec = 0;
      min = min + 1;
    }
  }

  lcd.setCursor(0, 1);
  lcd.print("Timer:");
  lcd.print(min);
  lcd.print(":");
  lcd.print(sec);
}

P.S. Я звісно початківець...

Підвал форуму