Měp jsem tam víc chyb. Za prvné jsem v podmínkách porovnával ne stavy termostatů (1,0) ale čísla jejich pinů a v proměných jsem měl pro definice pinů použitý typ boolean přitom čísla pinů jsou třeba 22. Teď jsem dodělal na konci pomínku která pro změnu taky nechodí. Předchozí podmínky už ano a to i s výpisem na sériovku a lcd.
#include <LiquidCrystal.h>
#include <OneWire.h> //knihovna sběrnice
#include <DallasTemperature.h> //knihovna snímač
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
const int Ter1 = 22;
const int Ter2 = 24;
const int CerP = 30;
const int CerK = 32;
const int VenP = 34;
const int VenR = 36;
const int Kot = 45;
boolean stavter1 = 0;
boolean stavter2 = 0;
float temp = 0;
void setup()
{
pinMode(Ter1, INPUT);
pinMode(Ter2, INPUT);
pinMode(CerP, OUTPUT);
pinMode(CerK, OUTPUT);
pinMode(VenP, OUTPUT);
pinMode(VenR, OUTPUT);
pinMode(Kot, OUTPUT);
sensors.begin();
lcd.begin(16,2);
Serial.begin(9600);
digitalWrite(CerP, LOW);
digitalWrite(CerK, LOW);
digitalWrite(VenP, LOW);
digitalWrite(VenR, LOW);
digitalWrite(Kot, LOW);
}
//smyčka
void loop()
{
// termostat prizemi
stavter1 = digitalRead(Ter1);
if (stavter1 == HIGH)
{
digitalWrite(Kot, HIGH);
digitalWrite(VenP, HIGH);
digitalWrite(CerP, HIGH) ;
}else
{
digitalWrite(Kot, LOW);
digitalWrite(VenP, LOW);
digitalWrite(CerP, LOW);
}
//termostat patro
stavter2 = digitalRead(Ter2);
if (stavter2 == HIGH)
{
digitalWrite(Kot, HIGH);
digitalWrite(VenR, HIGH);
}else
{
digitalWrite(Kot, LOW);
digitalWrite(VenR, LOW);
}
Serial.println(stavter1);
Serial.println(stavter2);
if ((stavter1 == HIGH) || (stavter2 == HIGH))
{
digitalWrite(Kot, HIGH);
}else
{
digitalWrite(Kot, LOW);
}
sensors.requestTemperatures();
temp = sensors.getTempCByIndex(0);
lcd.setCursor(0,0);
lcd.print(temp);
lcd.setCursor(6,0);
lcd.print((char)223);
lcd.setCursor(7,0);
lcd.print("C");
if (temp >= 23)
{
if (stavter1 == HIGH)
{
digitalWrite(CerP, HIGH);
digitalWrite(VenP, HIGH);
}else
{ digitalWrite(CerP, LOW);
digitalWrite(CerP, LOW);
}
if (stavter2 == HIGH)
{
digitalWrite(VenR, HIGH);
}else
{
digitalWrite(VenR, LOW);
}
}
}