Zdravím Vás
Mám taký malý problém. V programovaní som začiatočník. Naprogramoval som si tento termostat ale potreboval by som to naprogramovať tak aby som vedel nastavovať aj desatiny stupňa. Program aj zapojenie funguje ale viem nastavovať iba celé stupne. Bol by som rád ak by mi vedel niekto pomôcť.
#include <DHT.h>
#include <EEPROM.h>
#include <LiquidCrystal.h>
#define DHTPin A0
#define DHTTYPE DHT22
DHT dht(DHTPin,DHTTYPE);
LiquidCrystal lcd(5,4,3,2,1,0);
int Rele = 8;
int TlacPlus = 6;
int TlacMinus = 7;
float settemp;
void setup()
{
pinMode(Rele,OUTPUT);
pinMode(TlacPlus,INPUT);
pinMode(TlacMinus,INPUT);
digitalWrite(TlacPlus,HIGH); //zapnutie pull-up rezistora
digitalWrite(TlacMinus,HIGH); //zapnutie pull-up rezistora
lcd.begin(16,2);
dht.begin();
EEPROM.read(1);
}
void loop()
{
float vlhkost = dht.readHumidity();
float teplota = dht.readTemperature();
lcd.clear();
lcd.setCursor(0,0);
lcd.print(„T:“); // T – Teplota
lcd.print(teplota); //vypíš hodnotu zo senzora
lcd.print((char)223); //znak stupeň celzius
lcd.print(„C“);
lcd.print(„H:“); // H – Vlhkosť
lcd.print(vlhkost); //vypíš vlhkosť zo senzora
lcd.print(„%“);
settemp = EEPROM.read(1); //načítaj nastavenú teplotu do EEPROM pamäte
if (digitalRead(TlacPlus)==LOW)
{
(settemp++);
}
else
{
}
if (digitalRead(TlacMinus)==LOW)
{
(settemp–);
}
else
{
}
lcd.setCursor(0,1);
lcd.print(„I: „); //I – ideálna teplota
lcd.print(settemp); //vypíš ideálnu teplotu
lcd.print((char)223);
lcd.print(„C“);
EEPROM.write(1,settemp); //zapíš nastavenú teplotu do pamäte
delay(100);
if (teplota<settemp) //ak je teplota menšia ako nastavená teplota
{
digitalWrite(Rele,HIGH); //zopni Relé
}
else //inak
{
digitalWrite(Rele,LOW); //rozopni Relé
}
}