Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Arduino - podmínky

Tak teď trochu nechápu čeho chceš dosáhnout. Pokud je některý termostat sepnutý, zapne se kotel a v závislosti na tom, který termostat je sepnutý, tak se zapne buď přízemí nebo patro nebo oboje. A když je teplota větší než 23°C, tak se stane co?

/*před testem podmínek by měly být načteny stavter1, stavter2 a temp
a taky udělané všechny výstupy na serial, případně na LCD - to znamená testy až nakonec! */

if((temp < 23 && stavter1 == HIGH) || (temp < 23 && stavter2 == HIGH)) {
   digitalWrite(Kot, HIGH); }  //pokud je teplota nižší než 23°C a některý z termostatů sepne, zapni kotel
else {
   digitalWrite(Kot, LOW);     //jinak bude kotel vypnutý
   digitalWrite(CerP, LOW);    //a všechno ostatní taky
   digitalWrite(VenP, LOW);    
   digitalWrite(CerK, LOW);
   digitalWrite(VenR, LOW);
   }
if(stavter1 == HIGH) {
   digitalWrite(CerP, HIGH);   //Pokud je sepnutý spodní termostat, zapni CerP
   digitalWrite(VenP, HIGH);   //a VenP, ať už to znamená cokoliv
   }
else {
   digitalWrite(CerP, LOW);
   digitalWrite(VenP, LOW);    //jinak ty věci vypni
   }
if(stavter2 == HIGH) {
   digitalWrite(VenR, HIGH);   //Pokud je sepnutý horní termostat, zapni VenR
   }
else {
   digitalWrite(VenR, LOW);    //jinak vypni VenR
   }
/* K čemu slouží CerK? neměl by být taky někde zapnutý/vypnutý? */
Jinak jsem nepostřehl, že bys porovnával čísla pinů, digitalRead ti přece zjistí stav na pinu. Je vcelku jedno, jestli máš deklarovaný stavter jako boolean nebo int, taky v podmínce nemusíš explicitně psát if(stavter1 == HIGH), stačí if(stavter1), protože pokud je cokoliv jiného než nula, tak bude podmínka platit.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny