V programovaní som začiatočník. Naprogramoval som si tento termostat. Program aj zapojenie funguje problém mi ale robí naprogramovať to tak aby som vedel pridávať a uberať stupne po desatinách. Zatiaľ to mám naprogramované tak že pridávam a uberám iba celé stupne. Bol by som rád ak by mi vedel niekto pomôcť.
Tu je kód:
Kód: Vybrať všetko
#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); //nastavenie pinu ako výstup
pinMode(TlacPlus,INPUT_PULLUP); //nastavenie pinu ako vstup
pinMode(TlacMinus,INPUT_PULLUP); //nastavenie pinu ako vstup
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ň Celsius
lcd.print("C");
lcd.print("H:"); // H - vlhkosť
lcd.print(vlhkost); //vypíš hodnotu zo senzora
lcd.print("%");
settemp = EEPROM.read(1); //načítaj nastavenú teplotu z EEPROM pamäte
if (digitalRead(TlacPlus)==LOW) //ak je tlačidlo stlačené
{
settemp++; //pridaj stupne
}
else
{
}
if (digitalRead(TlacMinus)==LOW) //ak je tlačidlo stlačené
{
(settemp--); //uber stupne
}
else
{
}
lcd.setCursor(0,1);
lcd.print("I: "); // I - Ideálna teplota
lcd.print(settemp); //vypíš nastavenú teplotu
lcd.print((char)223); //znak stupeň Celsius
lcd.print("C");
EEPROM.write(1,settemp); //ulož nastavenú teplotu do pamäte
delay(100);
if (teplota<settemp) //ak je teplota menšia ako ideálna (nastavená) teplota
{
digitalWrite(Rele,HIGH); //zopni Relé
}
else //inak
{
digitalWrite(Rele,LOW); //rozopni Relé
}
}