Menu
CoddyTech

switch ile Seçim

Coddy'nin Arduino Journey'sinin delay() Kullanmadan Zamanlama bölümünün bir parçası. Ders 8 / 18.

Bir değişken birkaç farklı değere sahip olabiliyor ve her değer kendi kodunu gerektiriyorsa, if ve else if zinciri uzar. switch aynı işi yapar ve bir liste gibi okunur:

switch (zone) {
  case 0:
    // zone 0 olduğunda çalışır
    break;
  case 1:
    // zone 1 olduğunda çalışır
    break;
  default:
    // Hiçbir case eşleşmediğinde çalışır (isteğe bağlı)
    break;
}

switch, numarası eşleşen case etiketine atlar ve altındaki satırları çalıştırır. break, switch yapısından çıkar. Bir break yazmayı unutursan kart sonraki case'in satırlarına da geçmeye devam eder; buna falling through denir.

Burada düğme dört bölgeye ayrılmıştır. analogRead() 0 ile 1023 arasında bir değer verir ve 256'ya bölmek tam sayı verir: en alt çeyrek için 0, ardından üstte 1, 2 ve 3. Her bölge RGB LED'de kendine ait bir renk gösterir.

challenge icon

Görev

Kolay

Düğmeyi switch ile bir renk seçiciye dönüştür:

  • bölge 0: kırmızı (zaten yazılmış)
  • bölge 1: yeşil
  • bölge 2: mavi
  • bölge 3: beyaz (üçü de açık)

setColor() kullan ve her durumu break; ile bitir. Run'a bas, düğmeyi çevir, ardından Check'e bas.

Kendin dene

const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void setColor(int red, int green, int blue) {
  digitalWrite(redPin, red);
  digitalWrite(greenPin, green);
  digitalWrite(bluePin, blue);
}

void loop() {
  int zone = analogRead(A0) / 256;   // 0, 1, 2 veya 3

  switch (zone) {
    case 0:
      setColor(HIGH, LOW, LOW);   // kırmızı
      break;
    // 1, 2 ve 3 bölgelerini buraya ekle
  }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

delay() Kullanmadan Zamanlama bölümündeki tüm dersler

Kendi başına pratik yap: Arduino playground