Pic ile infrared engel algılayıcı

Başlatan umberto, 18 Aralık 2006, 23:16:47

umberto

Selamlar

Hobi amaçlı yaptığım çizgi izleyen robotun üzerindeki tach switchler yerine ir mesafe algılayıcı sensör arayışım üzerine aşağıda belirttiğim linkte

http://www.antrak.org.tr/gazete/022001/barbar.htm

ucuza maal edilebilecek , infrared engel algılama hakkında güzel bir dokuman buldum. Anlatıldıgı gibi 12c508'e verilen hex dosyasını gönderdim , devre şemasınıda kurdum. Fakat linkte belirtilen 36khz lik alıcı gözü piyasada bulamadıgım için bunun yerine sırasıyla 30khz lik ve 60khz lik alıcı gözler kullandım.

Herşeyi dogru yaptığımı düşünüyorum fakat infrared engel algılayıcısı çalışmamakta. pic'e yazdığım hex in kaynak kodu yok ama tahminimce 36khz lik puls lar gönderdiğini düşünüyorum. benim devrede 30khzlik alıcı göz kullanmamdan çalışmıyor olabilir mi ?

Bu devreyi aramızda kurup çalıştıran var mı?

teşekkürler

teknikelektronikci

piasada bu aliciyi tk 19 diyemi aradin ? bu tk 19 halbuki piasada cok bulunuor linki tam olarak incelemedim ama ordada tk 19 diye belirtmis olmasi gerek piasada tk 19 bilmezlerse televizyon kumanda alicisi gözü derseniz yardimci olabilirler birde bu tk19 un bacaklarina dikkat etmek gerek kullandiginiz alici gözünasil bi sey bilmiorum bu konuda yorum yapamam ama sunu da söyliyeimki internete acik kodu olmayan hex lere güven olmuor gerci antrak da böle bi durumun olcagini sanmiorum neyse kolay gelsin      


..::Teknikelektronikci::..
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

mytap

Çıkış sinyalinizin 36khz olduğuna öncelikle emin olunması gerek. Burdan sonra hatanın alıcı yada verici kısımdan hangisinde olduğu bulunabilir. Programın kaynak kodları olmamasıda büyük bir problem. Yapılabilecek fazla bişey kalmıyor. Bahsettiğim gibi çalışıp çalışmaması şansa kalıyor. Kaynak kodu olmayıp sadece hex kodları olan devrelerden uzak durmak gerekir. Yada baştan bu devreye bir program yazmak daha mantıklı.
-------------------------------------------------------- hayırlı günler, iyi çalışmalar..  --------------------------------------------------------

umberto

Hızlı cevaplar için teşekkurler..

Piyasada tk19 diye aramamıştım, infrared alıcı göz diye aradım , aldıgım üründe tsop1130 kodu vardı. Datashetine baktıgımda bu alıcının 30 khz alıcı oldugunu gördüm.

Likte verilen devrede ise alıcı göz olarak tk19 = tfms5360 alıcı göz kullanılmış. Bu alıcı göz ise 36khz de çalışmakta.

bacak baglantılarına datasheetinden baktım her ikiside aynı.

Yarın infrared led çıkışlarına skope ile ölçüp gerçekten 36khz mi çıkış veriyor emin olucam.

Antraktaki projenin aynısının bir benzerinide az önce bu linkte buldum.

http://www.seattlerobotics.org/encoder/jul99/brb.html

Evet hala yardımlarınızı bekliyorum..


uzaylivolkan

'''''''''GPIO.0  INFRARED LED BAĞLANACAK
'''''''''GPIO.1  tk19  BAĞLANACAK
@ device INTRC_OSC_NOCLKOUT
CMCON   = 7
VRCON   = 0
GPIO =   %00000 ' Initialize outputs
TRISIO = %00000 ' GPIO.0 = input, rest outputs
INCLUDE "modedefs.bas" 
B0	 var   word
l_values var byte
r_values var byte
counter var byte
ir_freq var word

SO VAR   GPIO.5 
Pause	   100
Serout SO,N2400,["VOLKAN" ,13,10]     ' Seri data gönder
ana_dongu:
l_values=0
r_values=0
for counter =0 to 4
lookup counter,[37500,38250,39500,40500,41500],ir_freq
freqout GPIO.0,1,ir_freq
l_values.lowbit(counter)=~GPIO.1
'l_values(counter)=~GPIO.1
next
'#ncd(l_values) MESAFEYE GÖRE 0 İLE 5 ARASI BİR DEĞER ALIR
Serout SO,N2400,["deger=",#ncd(l_values) ,13,10]     ' seri data gönder
IF l_values >0 THEN
GPIO.4=1 
PAUSE 200
GPIO.4=0
ENDIF
pause 50
			Goto ana_dongu    
End

umberto

Uzaylı volkan arkadasım, cevap için sagoalsın ama sadece kodu yazmışsın. Hiçbir bilgi eklememişsin. Bu kodu 12c508 için mi kullanıcaz ? Sen denedin mi bu şekilde?

Bizi aydınlatırsan seviniriz..

uzaylivolkan

12c508 ile kullanabilirsin Ama 12f675 flash bellekli bir
pic ile kullanırsan hata yaptığında pici atmak zorunda kalmazsın.
12c508 ile 12f675 bacak uyumludur.
devrede GPIO.O (7.BACAK ) İLE ŞASE ARASINA 320 OHM LUK Bir direnç ile INFRARED VERICI ledi bağla.
GPIO.1 (6.BACAK) A DA TK19(ALICI GÖZ) 'ün data ucunu bağla.
Program 37500khz ile 41500khz arasındaki frekanslarla (sırası ile)
GPIO.0 bacağa bağlı infrared ledi çalıştırır.Hemen sonra GPIO.1 bacağa bağlı
alıcının durumunu kontrol eder ve l_values  adlı dizinin içine atar.


(ALICI ile verici sensörleri yanyana bağla ve aralarını birbirlerinden etkilenmemeleri için bir cisimle kapat)


ncd(l_values) ise l_values değişkeninin içindeki enyuksek 1 değerinin sırasını verir.
(%10000) = 5 %(01000)=4 gibi
Algılayacağın Cismin alıcı sensöre uzaklığı ncd(l_values) değerini değiştirir. Cisim algılanmazsa
değer 0 dır
Eğer değer 0 den büyükse GPIO.4 (3 NOLU BACAK) A bağlayacağın
bir ledi yakıp söndürür.
IF l_values >0 THEN   'burada 0 yerine 1-5 arası senin belirleyeceğin bir mesafe değeri yer alabilir.
GPIO.4=1 
PAUSE 200 
GPIO.4=0 
ENDIF

NOT :INFRARED VERİCİ VE ALICI MODÜLLERİNİ ALIRKEN AYNI FİREKANSTA OLMALARINA DİKKAT ET
Piyasada 38khz ile 40 khz arası sensörler var

umberto

Selamlar

Devrenin infrared çıkışını skope ile ölçtüğümde 27.8khz ve 31.25 khz arasında katarlar göndermiş olduğunu gördüm.

Pic sanırım çalışıyor. Cisim algılamamasının sebebi , sizce 30 ve 60khzlik tk19 alıcı göz kullanmam olabilir mi ?

Pir-O

Çizgi izleyende kullanacaksan daha etkili bir sensor var CNY70

Daha önce denendi çalışıyor.

Çalışması: Cny70 ler senin kullandıgın IR verici alıcı gibi çalısıyor. Kendi içinde bir adet LED diyot ve bir adet foto-transistör var. Diyotun yaydıgı ışık beyaz çizgiden geri yansıyarak foto-tansistörü tetikliyor. Böylece çizgi algılanmış oluyor. Devrede opamp kullanılarak daha kararlı çalışma saglanmış oluyor. CNY70 leri piyasada tanesini 2 YTL ye alabilirsin. Opamp entegresi LM324 içerisinde 4 adet Opamp var 1 adet alman yeterlidir.
Devrede referans gerilimi ayarlamak için bir adet potansiyometre kullanılmıştır. Böylece algılama mesafesini arttırabilir veya azaltabilirsiniz. Denemelerimizde 10 cm uzaklıga kadar ayarlama yapabilmiştik.Ledler için  100 ohm (R27,R28,R29) yeterlidir. Transistörler için 4.7K ohm (R19,R20,R21). Potansiyometre 10 K veya daha üstü bir deger olmalıdır. Bir de potu ayarlarken sıfır degerinden kurtulmak için pot ile şase arasına 4.7 k ohm lus seri bir direnç koymanız gerekmektedir.

Kolay gelsin  :)




selvi

uzaylivolkan arkadas ben sizin yazdiginiz projeye yakin bir proje yazmak istiyorum.bu konuda yardimci olursaniz sevinirim.infrared ile hareketli cisimlerin saymasini istiyorum.ornegin:onceden 7 degerini bir degiskene yukluyorum(bu 7 deger gececek cisimlerin sayisi olsun)vericinin gonderdigi kizilotesi isikla bu cisimleri tespit etmek istiyorum.isik her kesildiginde sayac degiskeni bir deger artsin.sayac degeri 7 (7 defa isigin kesilmesi anlaminda)oldugunda sistem alarm versin.verici ile alici tek islemciyle kontrol etmek onemli.sizin yaptiginiz gibi.
Yaşam anlamlandırıldıkça kutsaldır....