Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: tomajstr 05. 07. 2014, 10:43:42
-
dobrý den, chtěl jsem udělat program co by po stisku tlačítka na ovladači přepnul Led diodu (pokud svítí, zhasne a pokud je zhaslá tak se rozsvítí). z nějakého neznámého důvodu mi však nefunguje tato metoda:
void prepniLed(){
if(led == true){
digitalWrite(13, LOW);
led = false;
}
if(led == false){
digitalWrite(13,HIGH);
led = true;
}
}
led se sice zapne ale již se nevypne, nevíte čím by to mohlo být?
-
jak se na ten tvůj kód dívám, tak při vykonávání projde obě větve if. V první větvi se proměnná led nastaví na false, což následně vyhovuje podmínce if(led == false). Takže ten druhý if změň na elseif nebo nějakou jeho obdobu a mělo by to fungovat.
-
a jo, dík, dal jsem tam else a už to funguje
-
Na takových (jednoduchých) chybách je nejhorší to, že čím dýl se na ten kód autor dívá a hledá v něm chybu, tím spíš klesá pravděpodobnost že jí najde. Pak se stačí zeptat kohokoliv jinýho a je to hned vyřešený ;-)
-
Ono casto staci se vubec jen zeptat ... reseni ti pak uz dojde pri tom ptani ... vyzkouseny mockrat, proste ses pak nucenej to formulovat nahlas, a velmi casto to zaroven pritom vyresis. Jinak zcela klasickej priklad autorsky slepoty ... ;D