If utasítás (feltételes utasítás)

Használjunk if utasítást a kimeneti feltételek megváltoztatásához a bemeneti feltételek megváltozása alapján.


Utolsó felülvizsgálat: 2022.02.04 16:50


Az if() utasítás a legalapvetőbb az összes programozási vezérlőstruktúra közül. Lehetővé teszi, hogy valamit megtörténjen vagy sem, attól függően, hogy egy adott feltétel igaz-e vagy sem. Ez így néz ki:

if (feltétel) {
// tegyen dolgokat, ha a feltétel igaz
}

Van egy összetett variáció, az if-else, amely így néz ki:

if (feltétel) {
// tegyen dolgokat, ha a feltétel igaz
} else {
// tegyen dolgokat, ha a feltétel hamis
}

Van még az else-if, ahol ellenőrizhet egy második feltételt, ha az első hamis:

if (feltétel) {
// tegyen dolgokat, ha a feltétel igaz
} else if (másikfeltétel) {
// tegyen dolgokat, ha az első feltétel hamis
// és a második feltétel igaz
}

Mindig használni fogja az if utasításokat. Az alábbi példa bekapcsol egy LED-et a 13-as kivezetésen (sok Arduino kártyán a beépített LED), ha az analóg bemeneten leolvasott érték egy bizonyos küszöb fölé megy.

Hardver szükséglet

  • Arduino kártya

  • Potenciométer vagy változó ellenállás

Az áramkör

Vázlat

A kód

Az alábbi kódban egy analogValue nevű változót használunk az analógPin 0 kártyához csatlakoztatott potenciométerről gyűjtött adatok tárolására. Ezt az adatot ezután összehasonlítják egy küszöbértékkel. Ha az analóg érték a beállított küszöbérték felett van, a 13-as digitális kivezetéshez csatlakoztatott beépített LED világít. Ha azt találja, hogy az analogValue < (kisebb, mint) a küszöbérték, a LED nem világít.

/*
  Conditionals - If statement

  Ez a példa az if() utasítások használatát mutatja be.
  Kiolvassa a potenciométer állapotát (analóg bemenet), és csak akkor
  kapcsol be egy LED-et, ha a potenciométer egy bizonyos küszöbérték
  fölé megy. A szinttől függetlenül kiírja az analóg értéket.

  Az áramkör:
  - potenciométer
    A potenciométer középső csatlakozója az analóg 0 kivezetésre kerül.
    A potenciométer oldalsó csatlakozói a +5V-ra és a földre mennek.
  - LED 220 ohmos ellenálláson keresztül a 13-as digitális kivezetésről a földre csatlakozik

  - Megjegyzés: A legtöbb Arduino kártyán már van egy LED a táblán a 13-as kivezetéshez
  csatlakoztatva, így ehhez a példához nincs szükség további alkatrészekre.

  created 17 Jan 2009
  modified 9 Apr 2012
  by Tom Igoe

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/control-structures/ifStatementConditional
*/

// Ezek az állandók nem változnak:
const int analogPin = A0;    // kivezetés, amelyhez az érzékelő csatlakozik
const int ledPin = 13;       // kivezetés, amelyhez a LED csatlakozik
const int threshold = 400;   // tetszőleges küszöbszint, amely az analóg bemenet tartományában van

void setup() {
  // inicializálja a LED kivezetést kimenetként:
  pinMode(ledPin, OUTPUT);
  // soros kommunikáció inicializálása:
  Serial.begin(9600);
}

void loop() {
  // olvassa le a potenciométer értékét:
  int analogValue = analogRead(analogPin);

  // Ha az analóg érték elég magas, kapcsolja be a LED-et:
  if (analogValue > threshold) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  // nyomtassa ki az analóg értéket:
  Serial.println(analogValue);
  delay(1);        // késleltetés a leolvasások között a stabilitás érdekében
}

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.