V článku se budeme zabývat podmínkami if , else if a else.
Podmínky v C jsou v některých případech potřeba. Podmínky budeme potřeba v situacích, kde budeme potřebovat využít více možností, ale jen aby platila jen jedna varianta, když se splní požadavek na splnění podmínky.
if ( naše podmínka ){ // zde bude příkaz k provedení, když bude podmínka splněna. }
Podmínky s jedním příkazemif (x > 200) digitalWrite(LEDpin, HIGH); if (x > 220) digitalWrite(LEDpin, HIGH); if (x > 20){ digitalWrite(LEDpin, HIGH); }
Podmínky s více příkazy, kde je nutné používat složené závorky.if (x > 65){ digitalWrite(Ledka1, HIGH); digitalWrite(Ledka2, LOW); }
Ukážem si příklad z led diodou. Jedná se o jednoduchou ukázku.
// deklarace proměnné s použitím define, je možné použít i byte nebo int.
// define nepoužívá ram. U byte a int ano.
define ledka 3
define pinAnalog A0
int pot;
void setup() {
Serial.begin(9600);
pinMode(ledka, INPUT);
}
void loop() {
// nastavuje hodnotu z 1023 na 255,toto nastavení jde provést i přes map.
pot = analogRead(pinAnalog)/4;
// Jakmile se na analogu oběví více než 60, tak se ledka rozvítí.
if (pot > 60) digitalWrite(ledka, HIGH);
}
Příklad s více podmínkami. Kde už je znázorněn i else if a else.
// deklarace proměnné s použitím define, je možné použít i byte nebo int.
// define nepoužívá ram. U byte a int ano.
#define ledka 3
#define ledkaD 4
#define pinAnalog A0
int pot;
void setup() {
Serial.begin(9600);
pinMode(ledka, INPUT);
pinMode(ledkaD, INPUT);
}
void loop() {
// nastavuje hodnotu z 1023 na 255,toto nastavení jde provést i přes map.
pot = analogRead(pinAnalog)/4;
if (pot < 60) {
digitalWrite(ledkaD, HIGH);
digitalWrite(ledka, LOW);
}
// Zde musí platit obě podmínky, a to větší než 60 a menší než 120. Jen upozorňuji, že bez znaménka =, se příkaz bude neplatý už od 119.
else if ((pot > 60) && (pot < 120)){
digitalWrite(ledkaD, LOW);
digitalWrite(ledka, HIGH);
}
else {
// zde bude příkaz, který se provede, když nebude ani jedna podmínka platit.
}
}