#10Başlangıç

Buton İle Led Yakma (On Off)

4.8(100)
157 tamamlandı
Buton İle Led Yakma (On Off)
Her buton basışında LED'in durumunu değiştiren (aç/kapa) toggle projesi. Durum değişkeni ve debounce mantığını öğretir.

Video

Devre Şeması

Buton İle Led Yakma (On Off) - Circuit

Kaynak Kodu

Arduino (C++)
1int ledState = 0;
2
3void setup() {
4  pinMode(13, INPUT);
5  pinMode(7, OUTPUT);
6}
7
8void loop() {  
9  if (digitalRead(13) == 1) {
10    ledState = !ledState;
11    digitalWrite(7, ledState);
12    delay(300);
13  }   
14}

Sıkça Sorulanlar

Debounce nedir, neden gerekli?▾

Mekanik buton basıldığı anda birkaç milisaniye boyunca çok kez açılıp kapanır (sıçrama). Arduino bunu birden fazla basış sanabilir ve LED rastgele durumda kalır. Debounce, durum değişiminden sonra kısa bir süre (ör. 50 ms) bekleyerek bu sıçramaları yok sayar.

LED bazen değişmiyor ya da iki kez değişiyor, neden?▾

Genelde debounce eksik ya da çok kısadır. Ayrıca sadece butonun 'basıldı' anını (önceki durum LOW, yeni durum HIGH) yakalamak gerekir; butona basılı tutulduğu sürece her döngüde durum değiştirilirse LED titreyerek rastgele kalır.

Durum değişkeni ne işe yarar?▾

LED'in açık mı kapalı mı olduğunu hafızada tutar. Her geçerli basışta değişken tersine çevrilir (ledDurum = !ledDurum) ve LED bu değere göre yazılır.

Birden fazla butonla farklı LED'leri kontrol edebilir miyim?▾

Evet, her buton için ayrı pin, ayrı önceki durum ve ayrı LED durumu değişkeni tutman yeterli. Çok buton kullanacaksan diziler ve millis() tabanlı debounce kodu daha düzenli olur.

Buton İle Led Yakma (On Off) | BlueGrays