PIC|ULAK PIC|ULAK ile LDR Uygulaması By Sinan Sözügüzel Posted on 23 Şubat 2016 5 min read 0 0 4,235 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhaba arkadaşlar, Bu yazımızda, MekatronikLAB firmasının üretmiş olduğu PIC mikrodenetleyiciler ile proje geliştirme kiti PIC|ULAK ile pwm(Pulse width modulation) darbe genişlik modülasyonu ile adc(analog to converter) bölümlerini birleştirerek ışığın şiddetine ters orantılı şekilde ledin yanması uygulanmasını gerçekleştirdik gerçekleştirdik. Foto direnç (LDR,light dependent resistor), üzerine düşen ışığın şiddetine göre direni değişen devre elemanıdır. Videoda uygulama pek anlaşılmayabilir o yüzden uygulama hakkında açıklama yapıyorum. 🙂 Bu uygulamamızı sokak lambalarının çalışma prensibi yada, telefonlarımızda bulunan parlaklık düzeyi otomatik konumda olduğunda gerçekleşen olaylar gibi düşünebiliriz, kısacası karanlıkta yanan led gibi 🙂 Daha önceki yazılarımızda bu uygulamada kullanılan adc ve pwm bölümlerini anlattığım için merak ettiklerinize önceki yazılardan ulaşabilirsiniz. iyi çalışmalar… NOT:Arkadaşlar ldr nin benim uyguladığım ışık şiddetine karşı algıladığı dijital değer 800 civarı olduğu için bu değerde sınırladım, yani bu değeri geçtiğinde led yine yanmaya başlayacak. (video da olduğu gibi 🙂 ) Malzemeler pic|ulak ldr 10k direnç 330Ω direnç led lcd Bağlantı Şeması CCS C Kodları [php] #include <18f2550.h> #device adc=10 // 10 bitlik adc kullanılıyor. #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // sigortaayarları. #use delay (clock=20M) // osilatör frekansı #define use_portb_lcd TRUE // lcd i b portuna bağlı #include <lcd420.c> //4*20 lcd tanıtılıyor. unsigned long int bilgi; //bilgi adındaişaretsiz tamm sayı tanımlanıyor. void main() { lcd_init(); // lcd hazırlanııyor. printf(lcd_putc,"\fMEKATRONIKLAB"); printf(lcd_putc,"\nROBOTURKA"); printf(lcd_putc,"\nSINAN SOZUGUZEL"); printf(lcd_putc,"\nGAZIOSMANPASA UNI"); delay_ms(500); setup_adc(adc_clock_div_32); // ADC clock frekansı fosc/32 setup_adc_ports(AN0); // A0 pini analog giriş olarak ayarlanıyor. set_adc_channel(0); // A0 pini adc işlemine tabi tutuluyor. delay_ms(20); // gecikme veriliyor. setup_timer_2(t2_div_by_16,254,1); // pwm ayarları yapılıyor. setup_ccp1(ccp_pwm); // ccp1 aktifleştiriliyor. while(1) { bilgi=read_adc(); // okunan değer bilgi değişkenine aktarılıyor. set_pwm1_duty(800-bilgi); // 800 sınır olarak ayarlanıyor. delay_ms(20); printf(lcd_putc,"\fDIJITAL=%lu",bilgi); // adc sonucu lcd ye aktarılıyor. printf(lcd_putc,"\n"); printf(lcd_putc,"\n LDR UYGULAMSI"); printf(lcd_putc,"\nROBOTURKA / PIC|ULAK"); delay_ms(100); } } [/php] Devrenin Çalışma Videosu