Menu
CoddyTech

Her Basışta Durumu Değiştirme

Coddy'nin Arduino Journey'sinin Girişler bölümünün bir parçası. Ders 4 / 22.

Şimdiye kadar LED düğmenin aynısını yaptı: düğme basılıyken yanıyor, bırakıldığında sönüyor. Bir lamba düğmesi farklı çalışır: bir kez basınca yanar, tekrar basınca söner. Buna toggle denir.

Açıp kapatmak için taslak, düğmenin basıldığı anı fark etmelidir: şimdi basılı, ancak loop() en son çalıştığında basılı değildi. Bu ana kenar denir. Son okumayı, bir sayaç gibi, setup() üstündeki bir değişkende tut:

int lastReading = HIGH;

void loop() {
  int reading = digitalRead(2);
  if (reading == LOW && lastReading == HIGH) {
    // düğmeye basıldı
  }
  lastReading = reading;
}

Düğmeyi basılı tutmak, okumanın LOW kalmasını sağlar; bu nedenle ne kadar uzun basılı tutarsan tut, kenar her basışta bir kez oluşur.

Bir bool değerini tersine çevirmek için "değil" anlamına gelen ! kullan: ledOn = !ledOn;, true değerini false yapar ve tersini de.

challenge icon

Görev

Orta

Düğme 2 numaralı pine (INPUT_PULLUP), LED ise 13 numaralı pine bağlı. Her basışta LED’in durumunu değiştir:

  • düğme basıldığında (LOW şimdi, geçen sefer HIGH), ledOn değerini tersine çevir
  • okumayı loop() sonunda lastReading içine kaydet
  • LED’i ledOn değerine göre aç veya kapat

Run düğmesine bas, düğmeye birkaç kez bas, ardından Check düğmesine bas.

Kendin dene

const int buttonPin = 2;
const int ledPin = 13;

bool ledOn = false;
int lastReading = HIGH;

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

void loop() {
  int reading = digitalRead(buttonPin);
  // Düğmeye basıldığında ledOn değerini tersine çevir
  // Bir sonraki sefer için bu okumayı hatırla
  // ledOn değerine uyması için LED'i aç veya kapat
}
quiz iconKendini test et

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

Girişler bölümündeki tüm dersler

Kendi başına pratik yap: Arduino playground