Proje Özeti
Bu projede, Arduino kullanarak bir buton ile LED kontrolünü öğreneceğiz. İki farklı senaryoyu uygulayacağız:
- Basılı tutma: Buton basılıyken LED yanar, bırakıldığında söner.
- Bas-çek (toggle): Butona her basıldığında LED’in durumu değişir.
Her iki yöntem de Arduino ile temel dijital giriş/çıkış kontrolünü öğrenmek için idealdir.
Gerekli Malzemeler
Parça | Miktar |
---|---|
Arduino UNO (veya uyumlu) | 1 adet |
LED | 1 adet |
220Ω direnç | 1 adet |
10kΩ direnç | 1 adet (pull-down için) |
Buton | 1 adet |
Breadboard | 1 adet |
Jumper kabloları | Yeterli sayıda |
Devre Bağlantısı
LED Bağlantısı:
- Uzun bacak (Anot): Arduino pin 2
- Kısa bacak (Katot): 220Ω direnç üzerinden GND
Buton Bağlantısı (Pull-down yöntemiyle):
- Bir ucu: Arduino pin 3
- Diğer ucu: +5V
- Aynı bacak ile GND arasına: 10kΩ pull-down direnci
Pull-Down Direnci Nedir?
Arduino’da bir dijital giriş pini boşta bırakılırsa (örneğin buton basılmadığında), pinin durumu kararsız olabilir. Bu duruma floating (yüzücü) pin denir.
Pull-down direnci, pinin LOW seviyesinde kalmasını sağlar ve yanlış tetiklemeleri önler.
Genellikle 10kΩ direnç kullanılır. Butonun bir ucuyla GND arasına bağlanır.
Bağlantı Şeması:
Yöntem 1: Basılı Tutma ile LED Kontrolü
Bu yöntemde, buton basılı tutulduğu sürece LED yanar. Bırakıldığında söner.
int ledPin = 2;
int butonPin = 3;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(butonPin, INPUT); // Pull-down kullanıldığı için INPUT
}
void loop() {
int butonDurumu = digitalRead(butonPin);
if (butonDurumu == HIGH) {
digitalWrite(ledPin, HIGH); // LED yanar
} else {
digitalWrite(ledPin, LOW); // LED söner
}
}
öntem 2: Bas-Çek (Toggle) ile LED Kontrolü
Bu yöntemle butona her basıldığında, LED’in durumu değiştirilir:
- İlk basışta: LED yanar
- İkinci basışta: LED söner
- Devamında her basışta durum değişir
int ledPin = 2; // LED'in bağlı olduğu pin
int butonPin = 3; // Butonun bağlı olduğu pin
bool ledDurumu = false; // LED başlangıç durumu (kapalı)
bool oncekiButonDurumu = LOW; // Butonun önceki durumu (basılmamış)
void setup() {
pinMode(ledPin, OUTPUT); // LED pini çıkış olarak ayarlanır
pinMode(butonPin, INPUT); // Buton pini giriş olarak ayarlanır
}
void loop() {
bool butonDurumu = digitalRead(butonPin); // Butonun mevcut durumu okunur
// Buton basıldıysa ve önceki durum basılmamışsa (yeni basış algılanır)
if (butonDurumu == HIGH && oncekiButonDurumu == LOW) {
ledDurumu = !ledDurumu; // LED durumu değiştirilir (aç/kapa)
digitalWrite(ledPin, ledDurumu ? HIGH : LOW); // LED durumu uygulanır
delay(50); // Debounce için kısa gecikme
}
oncekiButonDurumu = butonDurumu; // Butonun önceki durumu güncellenir
}
Serinin devamı için buradan devam edebilirsiniz:https://monoveri.com.tr/arduino-led-devresi-6-buton-ile-3-modlu-led-yanip-sonme-projesi/