PIC|ULAK PIC|ULAK ile Araç Park Sensörü By Sinan Sözügüzel Posted on 11 Şubat 2016 4 min read 0 1 3,867 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 ultrasonik sensör ile araç park sensörü uygulamasını gerçekleştirdik. Yazdığımız kodu CCS C programında derledikten sonra hex dosyasını oluşturuyoruz.PİCkit2 programı ile derlediğimiz hex dosyasını pic|ulak kartımıza yükledikten sonra uygulamamızı çalıştırabiliyoruz 🙂 Uygulamamızda ölçülen mesafe aralığını 4*20 lcd ekrana yazdırılmakta. Belirli mesafe aralıklarında devrede bulunan buzzer ile yakınlık arttıkça ses uyarıları ile bildirim alıyoruz. Kullanılan mesafe sensörünün nasıl çalıştığını ve mesafeyi hesaplarken ne gibi formüllerin kullanıdığına aşağıda paylaşacağımız kod kısmından veya google dan kısa bi araştırma sonucunda ulaşabilirsiniz 🙂 iyi çalışmalar… Malzemeler pic|ulak ultrasonic sensör potansiyometre 4*20 LCD ekran buzzer bağlantı kabloları Bağlantı şeması CCS C kodları [php] #include <main.h> #use delay (clock= 20M) #include <LCD420.c> //4*20 lcd tanıtılıyor. #define use_lcd_TRUE // lcd i B portuna bağlı. #define trig pin_a0 // A0 pini trig olarak tanımlanıyor. #define echo pin_a1 // A1 pini echo olarak tanımlanıyor. float uzaklik, zaman; void main() { lcd_init(); printf(lcd_putc,"\f PIC|ULAK "); printf(lcd_putc,"\n ROBOTURKAA "); // LCD çalışmaya başladığında giriş ekranının durumu printf(lcd_putc,"\n ARAC PARK SENSORU "); printf(lcd_putc,"\n SINAN SOZUGUZEL "); delay_ms(1500); // 1500 ms gecikme veriliyor. setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); //t1 kesmesi ayarları yapılıyor. while(1) { output_high(trig); delay_us(20); output_low(trig); while(!input(echo)) {} set_timer1(0); while(input(echo)) {} zaman=get_timer1(); // timer1 kesmesi zaman değişkenine aktarılıyor. uzaklik=zaman*0.0368; // gerekli hesaplamalar yapılıyor. uzaklik= uzaklik/1.3; // gerekli hesaplamalar yapılıyor. /* Mesafe Bildirimleri */ if(uzaklik<10) { output_high(pin_c2); delay_ms(20); output_low(pin_c2); delay_ms(20); } if((uzaklik<15)&&(uzaklik>10)) { output_high(pin_c2); delay_ms(50); output_low(pin_c2); delay_ms(50); } if((uzaklik<20)&&(uzaklik>10)) { output_high(pin_c2); delay_ms(100); output_low(pin_c2); delay_ms(100); } /* hesaplanan mesafe lcd de gösteriliyor. */ lcd_gotoxy(1,1); lcd_putc("\fMesafe:"); lcd_gotoxy(8,1); printf(lcd_putc,"%.2fcm",uzaklik); delay_ms(100); } } [/php] Devrenin çalışma videosu