Switch (case) utasítás használata soros bemenettel

Egy második switch-case példa, amely bemutatja, hogyan kell különböző műveleteket végrehajtani a soros porton fogadott karakterek alapján.


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


Az if utasítás lehetővé teszi, hogy két diszkrét opció közül válasszon: IGAZ vagy HAMIS. Ha kettőnél több lehetőség van, használhat több if utasítást, vagy használhatja a switch utasítást. A Switch lehetővé teszi, hogy több különálló opció közül válasszon.

Hardver szükséglet

  • Arduino kártya

  • 5 LED

  • 5 220 ohm-os ellenállás

  • összekötő vezetékek

  • dugdosós próbapanel (breadboard)

Az áramkör

Öt LED csatlakozik a 2., 3., 4., 5. és 6. digitális kivezetésekhez 220 ohmos ellenálláson keresztül.

A vázlat működtetéséhez a kártyát csatlakoztatni kell a számítógéphez. Az Arduino IDE-ben nyissa meg a soros monitort, és küldje el az a, b, c, d vagy e karaktereket a megfelelő LED bekapcsolásához, vagy bármi mást a kikapcsoláshoz.

Vázlat

A kód

/*
  Switch statement with serial input

  A switch utasítás használatát mutatja be. A switch utasítás lehetővé teszi,
  hogy egy változó diszkrét értékei közül válasszon. Olyan ez, mint az
  if utasítások sorozata.

  A vázlat működés közbeni megtekintéséhez nyissa meg a Soros monitort,
  és küldjön el bármilyen karaktert. Az a, b, c, d és e karakterekre LED-ek
  bekapcsolódnak. Minden más karakter kikapcsolja a LED-eket.

  Az áramkör:
  - öt LED a 2–6 digitális kivezetőkhöz csatlakoztatva 220 ohmos ellenálláson keresztül

  created 1 Jul 2009
  by Tom Igoe

  Ez a kód nyilvános.

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

void setup() {
  // soros kommunikáció inicializálása:
  Serial.begin(9600);
  // a LED kivezetések inicializálása:
  for (int thisPin = 2; thisPin < 7; thisPin++) {
    pinMode(thisPin, OUTPUT);
  }
}

void loop() {
  // érzékelő olvasása:
  if (Serial.available() > 0) {
    int inByte = Serial.read();
    // tegyen valamit a kapott karaktertől függően.
    // ebben a példában azonban egyszeres idézőjeleket használ,
    // hogy megmondja a vezérlőnek, hogy szerezze be a karakter
    // ASCII-értékét. Például 'a' = 97, 'b' = 98,
    // és így tovább:

    switch (inByte) {
      case 'a':
        digitalWrite(2, HIGH);
        break;
      case 'b':
        digitalWrite(3, HIGH);
        break;
      case 'c':
        digitalWrite(4, HIGH);
        break;
      case 'd':
        digitalWrite(5, HIGH);
        break;
      case 'e':
        digitalWrite(6, HIGH);
        break;
      default:
        // az összes LED kikapcsolása:
        for (int thisPin = 2; thisPin < 7; thisPin++) {
          digitalWrite(thisPin, LOW);
        }
    }
  }
}

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.