PIC Programlama Dersleri 15: LED Flaşör ve Ayarlanabilir Yanıp Sönme Süresi
Bu derste PIC16F628A ile LED'in yanıp sönmesini sağlayacağız. Butona basıldığında LED'in yanıp sönme hızı değişecek. Böylece döngü, koşul, değişken ve gecikme komutlarını birlikte kullanacağız.
1. Gerekli Malzemeler
- PIC16F628A mikrodenetleyici
- 1 adet LED
- 330 Ω seri direnç
- 1 adet buton
- 1 adet 10 kΩ direnç
- Deney kartı ve bağlantı kabloları
2. Devre Bağlantıları
- RB0: 330 Ω direnç üzerinden LED'e bağlanır.
- LED'in katot ucu GND'ye bağlanır.
- RA0: Butonun bir ucuna bağlanır.
- Butonun diğer ucu +5 V'a bağlanır.
- RA0 ile GND arasına 10 kΩ pull-down direnci bağlanır.
3. MikroC PRO for PIC Kodu
Kod:
unsigned int bekleme = 500;
void main() {
CMCON = 0x07;
TRISA = 0b00000001;
TRISB = 0b00000000;
PORTB = 0x00;
while (1) {
if (PORTA.F0 == 1) {
bekleme = 100;
} else {
bekleme = 500;
}
PORTB.F0 = 1;
Delay_ms(bekleme);
PORTB.F0 = 0;
Delay_ms(bekleme);
}
}
4. Program Nasıl Çalışır?
- Butona basılmadığında bekleme değişkeni 500 ms olur.
- Butona basıldığında bekleme süresi 100 ms olarak ayarlanır.
- LED önce yanar, belirlenen süre kadar bekler, ardından söner.
- while (1) döngüsü sayesinde bu işlem sürekli tekrarlanır.
5. Deney ve Gözlem
- bekleme = 100; değerini 250 yaparak LED'in yanıp sönme hızını gözlemleyin.
- bekleme = 500; değerini 1000 yaparak daha yavaş yanıp sönmesini sağlayın.
- Butona basıp bırakırken hızın ne zaman değiştiğine dikkat edin.
Sonuç
Bu uygulamada değişkenle süre belirlemeyi, Delay_ms() komutunu ve koşullu kontrolü bir arada kullandık. Aynı yapı uyarı LED'lerinde, ikaz lambalarında ve basit zaman kontrollü elektronik uygulamalarda kullanılabilir.