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