Menu
CoddyTech

Modu Hatırla

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

Bir düğmeye basma saniyenin küçük bir bölümü kadar sürer, ancak başlattığı şey çok daha uzun sürebilir. Düğme bırakıldıktan sonra devam etmek için sketch'in ne yaptığını hatırlaması gerekir. Bunun için kullanılan bir değişkene durum veya mod denir:

int mode = 0;   // 0 = kapalı, 1 = yanıp sönüyor

loop() işlevini ikiye böl. Önce, yalnızca girdiler modu değiştirir. Ardından, döngünün geri kalanı modun belirttiği şeyi yapar:

// 1. girişler mode değerini değiştirir
if (digitalRead(blinkButton) == LOW) {
  mode = 1;
}

// 2. ne olacağını mode belirler
if (mode == 1) {
  // millis() ile LED'i yanıp söndür
} else {
  digitalWrite(ledPin, LOW);
}

Her sayı, sketch'in yapabileceği bir şeyi temsil eder. Her sayının ne anlama geldiğini bir yorum satırında yaz. Bir sketch'in ihtiyaç duyduğu kadar modu olabilir: 0, 1, 2, 3 ve daha fazlası.

challenge icon

Görev

Kolay

Yeşil düğme 2 numaralı pine, kırmızı düğme ise 3 numaralı pine bağlıdır.

  • yeşil mode değerini 1 yapar, kırmızı ise 0 yapar
  • mode 1 olduğunda, 13 numaralı pindeki LED millis() ile yanıp söner; 500 ms yanık, 500 ms sönük kalır
  • mode 0 olduğunda LED söner

Run düğmesine bas, yeşil düğmeye basıp bırak, ardından kırmızı düğmeye bas. Sonra Check düğmesine bas.

Kendin dene

const int ledPin = 13;
const int blinkButton = 2;   // yeşil
const int offButton = 3;     // kırmızı

int mode = 0;   // 0 = kapalı, 1 = yanıp sönüyor

unsigned long previousMillis = 0;
int ledState = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(blinkButton, INPUT_PULLUP);
  pinMode(offButton, INPUT_PULLUP);
}

void loop() {
  // 1. düğmeler yalnızca mode değerini değiştirir

  // 2. ardından mode değerinin gerektirdiğini yap
}
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