PIC Programlama Dersleri 13: İki Butonla LED Kontrolü
Bu derste PIC16F628A ile iki ayrı buton kullanarak LED'i açıp kapatacağız. Birinci buton LED'i yakacak, ikinci buton ise söndürecek. Böylece girişleri ayrı ayrı okumayı ve birden fazla koşul kullanmayı öğreneceğiz.
1. Gerekli Malzemeler
- PIC16F628A mikrodenetleyici
- 1 adet LED
- LED için 330 Ω seri direnç
- 2 adet buton
- 2 adet 10 kΩ direnç
- Deney kartı ve bağlantı kabloları
2. Devre Bağlantıları
- RB0: 330 Ω direnç üzerinden LED'e; LED'in diğer ucu GND'ye.
- RA0: Birinci butona; butonun diğer ucu +5 V'a.
- RA1: İkinci butona; butonun diğer ucu +5 V'a.
- RA0 ve RA1: Her bir girişten GND'ye ayrı ayrı 10 kΩ direnç.
3. MikroC PRO for PIC Kodu
Kod:
void main() {
CMCON = 0x07; // Karşılaştırıcıları kapat
TRISA = 0b00000011; // RA0 ve RA1 giriş
TRISB = 0b00000000; // PORTB çıkış
PORTB = 0x00;
while (1) {
if (PORTA.F0 == 1) {
PORTB.F0 = 1; // Birinci buton: LED'i yak
}
if (PORTA.F1 == 1) {
PORTB.F0 = 0; // İkinci buton: LED'i söndür
}
}
}
4. Programın Çalışması
- RA0 girişindeki birinci butona basıldığında RB0 lojik 1 olur ve LED yanar.
- RA1 girişindeki ikinci butona basıldığında RB0 lojik 0 olur ve LED söner.
- Hiçbir butona basılmadığında LED son durumunu korur.
5. Önemli Bilgi
Bu örnekte buton sıçraması için gecikme eklenmemiştir; çünkü buton yalnızca LED'in açık veya kapalı durumunu belirler. Mekanik butonlardaki kısa süreli sıçramalar bazı uygulamalarda ek yazılım önlemleri gerektirebilir.
6. Kendin Dene
- İkinci bir LED ekleyerek birinci butonla kırmızı LED'i, ikinci butonla yeşil LED'i kontrol edin.
- Her iki LED'in aynı anda yanmasını engelleyen bir program yazmayı deneyin.
- Buton girişlerini RA0 ve RA1 yerine uygun dijital giriş olarak yapılandırılmış başka pinlere taşıyın.
Sonuç
İki butonla kontrol uygulaması, bir mikrodenetleyicinin kullanıcı komutlarına göre farklı işlemler yapmasının temel örneklerinden biridir. Aynı yöntem röle, uyarı lambası ve basit kontrol panellerinde de kullanılabilir.