PIC16F628A LED Flaşör Devresi – MikroC ile Yanıp Sönme Hızı

guclusat

Tanınmış Üye
Süper Moderatör

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.
PIC'in VDD besleme pini +5 V'a, VSS pini GND'ye bağlanmalıdı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.
Önemli: Bu program butonun durumunu LED'in her yanma ve sönme döngüsünün başında kontrol eder. Bu nedenle butona basıldığında hız değişimi hemen değil, mevcut gecikme tamamlandığında gerçekleşebilir.

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.
 
Geri
Yukarı