Engel Algılama Devresi

ENGEL_1

Özellikle robot devrelerinde ve otomasyon devrelerinde engel algılama devrelerine ihtiyaç duyulur. Çeşitli tipte engel algılama devreleri mevcuttur. Bizim kullanacağımız devre IR (InfraRed-Kızıl ötesi) engel algılama devresi. Devrenin çalışma mantığı yandaki şekilde verilmiştir. Sistem,  IR ışık yayan ledlerin ışığının yansımasının IR Detektör tarafından alınması prensibine göre çalışır.

engel_628

Devremizde PIC16F628A mikrodenetleyicisi kullanılmıştır. Mikrodenetleyicinin pwm çıkışı 38Khz , %50 dolulukta (pwm duty cycle) çıkış üretmektedir. Tx çıkışından Lojik 0 veya 1 gönderilip, Rx ucundan evirilmiş olarak gelip gelmediği kontrol edilmektedir. Eğer bütün gönderilmiş bitler evirilmiş olarak alınıyorsa LED yanar ve OUT çıkışı LOW’a çekilir (lojik 0). Q1 ve Q2 transistörleri AND kapısı şeklinde bağlanmıştır. IR ledler devamlı yanacak olursa IR detektör 38 khz frekansı bastırarak çıkışta Lojik 1 görülebilir. Bu şekildeki bir kullanımda ise çıkışta gönderilen sinyalin tersi görülür. Aşağıda kullanılan IR dedektörün şekli ve ayak bağlantısı görülmektedir.

IR DETECTORIR Ledlerin ışık şiddeti ve dolayısı ile algılama mesafesi 820R değerindeki direncin değeri düşürülerek arttırılabilir. Hatta bu direnç yerine 47R+ 5k ayarlı direnç takılarak mesafe ayarı da yapılabilir. IR ledler makaron veya siyah bir boru içine alınmalıdır.

PIC16F628A kodları Mikroc ile yazılmıştır. Kodlar aşağıdadır.

</code>
// Program problemsiz çalıştı.

#define LED PORTB.B6
#define Tx PORTB.B2
#define Rx PORTB.B1
#define OUT PORTB.B5

char veri=0,sayac=0;
unsigned char sayac1=0,sayac2=0;
//------------------------------------
void veri_yolla() {
 sayac=0;
 Tx=1;
 Delay_500us();
 if(!Rx) sayac++;
 Tx=0;
 Delay_500us();
 if(Rx) sayac++;
 Tx=1;
 Delay_500us();
 if(!Rx) sayac++;
 Tx=0;
 Delay_500us();
 if(Rx) sayac++;
 Tx=1;
 Delay_500us();
 if(!Rx) sayac++;
 Tx=1;
 Delay_500us();
 if(!Rx) sayac++;
 if(sayac==6) {LED=1;OUT=0;}
 else {LED=0;OUT=1;}
 }
//-------------------------------------------------
 void main() {
 TRISB=2;
 PORTB=0;
 LED=1;
 Delay_ms(1000);
 LED=0;
 PWM1_Init(38000);
 PWM1_Set_Duty(127);
 PWM1_Start();
 Tx=1;
 do{
    veri_yolla();
   }while(1);
}// main fonksiyonu sonu

Konfigürasyon parametreleri : INT osc(4Mhz osc), MCLR Disable

Devreye ait baskıdevre ve yerleşim planı aşağıda görülmektedir. Proje dosyalarına buradan erişilebilir.

engel_yerlesim engel_pcb engelengel

DSC_0027

Reklamlar

20 thoughts on “Engel Algılama Devresi

      • birşey sorabilirmiyim peki.tek mikroişlemciye 2 ır alıcı verici nasıl baglayabiliriz hocam? yazılımında ve donanımında nasıl bir ekleme yapmamız gerekir?

      • Şöyle bir uygulama yapmıştım; üç yönden engel algılama. Bu uygulamada tek pwm ile (38khz) bütün IR ledleri sürmüştüm. ikinci transistörler ile veri göndermiştim. Her kanal için bir IR alıcı yerleştirip sırayla tarama yapıp sonucu algıyatıp USART ile başka bir PIC’e göndermiştim. Gayet kararlı bir uygulama olmuştu.

  1. ısıs de devreye run diyince “No model specified for IR1” hatası alıyorum ır led kütüphanemde ekli değil bunu nerden bulabilirim?

  2. Hocam öncelikle bu devre için teşekkür ederim aradığım bir projeydi.
    Burda kullanılan TSOP4838 i internet üzerinden sipariş vererek alacağım fakat sipariş vereceğim sitede TSOP34838 var sadece bunu kullanırsam bir sorun olurmu acaba ve J1 POWER diye bir connector var ısıs şemasında bunun bağlantılarını nasıl yapacağız (R2-R5-C2-RB5 bağlantılarnı mı ekliyeceğiz).
    Son olarak ”Konfigürasyon parametreleri : INT osc(4Mhz osc), MCLR Disable” diye bir bilgi vermişsiniz bunlar ne anlama geliyor, acemiyim maruz görün hocam.
    Detaylı bir bilgi verirseniz sevinirim.

  3. J1 POWER diye bir connector var ısıs şemasında bunun bağlantılarını nasıl yapacağız (R2-R5-C2-RB5 bağlantılarnı mı ekliyeceğiz).
    Son olarak ”Konfigürasyon parametreleri : INT osc(4Mhz osc), MCLR Disable” diye bir bilgi vermişsiniz bunlar ne anlama geliyor, acemiyim maruz görün hocam.
    Detaylı bir bilgi verirseniz sevinirim.

  4. Hocam lütfen yardımcı olun devreyi kurdum fakat J1 power a 7805 mi bağlıyıcaz yoksa direk 12V mu vericez ben direk toprak ve vcc ye 9v verdim led hızlı hızlı yanıp sönüyor ne yapmam lazım lütfen yardım edin

  5. BENDE TSOP34836 VAR BÜYÜK ORANDA HERŞEY UYUYOR AMA BENİMKİ 36 kHZ SANIRSAM NASIL ADAPTE EDERİZ Bİ YARDIMCI OLUR MUSUNUZ?

      • 38000 i 36000 yaptım ama bu sefer pic yükleme de hata veriyor. “warning hex file loaded is larger than device” yazıyor. senin .hex dosyasını yüklemeye çalıştığımda sıkıntı olmuyor nedendir? bi de sen bana bunun 36000 halini .Hex olarak göndersen derleyi de problem mi var acaba benim

  6. 38000 i 36000 yaptım ama bu sefer pic yükleme de hata veriyor. “warning hex file loaded is larger than device” yazıyor. senin .hex dosyasını yüklemeye çalıştığımda sıkıntı olmuyor nedendir? bi de sen bana bunun 36000 halini .Hex olarak göndersen derleyi de problem mi var acaba benim

    bana bu proğramı 36000 yaparak .hex atabilir misiniz ??

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s