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üyorloop() 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ı.
Görev
KolayYeşil düğme 2 numaralı pine, kırmızı düğme ise 3 numaralı pine bağlıdır.
- yeşil
modedeğerini 1 yapar, kırmızı ise 0 yapar mode1 olduğunda, 13 numaralı pindeki LEDmillis()ile yanıp söner; 500 ms yanık, 500 ms sönük kalırmode0 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
}
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