ultrasonik mesafe ölçüm niye çalışmaz_?

Başlatan mustafa_cmbz, 05 Nisan 2009, 15:39:13

mustafa_cmbz

arkadaşlar bilim tekniğin bir sayısında yayınlanan devreyi çalıştırmaya çalışıyorum...sorun nerededir anlayamadım...devrede siyah sensörlerden kullandım çalışmayınca sensörler dandik ondandır dedim bizim ustanın arabasındaki ultrasonik alıcı vericiye metal kılıflı sensörlere benzeyen şeyleri söktüm onlarla denedim oda olmadı acaba sorun neyden kaynaklanıyor_? devrenin bütün dökümanları emrinizde arkadaşlar...yardımlarınızı bekliyorum...




devrenin kodları:

@ device pic16F628A, intrc_osc_noclkout, wdt_on, pwrt_on, protect_off, mclr_off, lvp_off 

DEFINE LCD_DREG	 PORTB	'LCD data bacakları hangi Porta bağlı?
DEFINE LCD_DBIT		4		'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG	 PORTB	'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT		3		'LCD Enable Bacağı Hangi bite bağlı ?
define LCD RWREG PORTA   	'LCD R/W Bacağı Hangi Porta bağlı?
define LCD_RWBIT    0       		'LCD R/W Bacağı Hangi bite bağlı ?
DEFINE LCD_RSREG PORTB	'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT	0		'LCD RS bacağı Hangi Bite bağlı  ?
DEFINE LCD_BITS		4		'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES	2		'LCD Kaç sıra yazabiliyor

CMCON=7
PAUSE 250
TRISB = %00100000
SURE VAR WORD ;DE..fiKENLER TANIMLANIYOR

VERICI VAR PORTB.1
ALICI VAR PORTB.2

LCDOUT $FE,1;EKRANI TEMIZLE

T1CON = %00000001 ;TIMER1 OLCEKLEME 1/1

PIE1.0=1 ;TIMER1f. ETK.NLEfiT.R

PIR1.0=0 ; TIMER1 TAfiMASINI TEM.ZLE

INTCON = %11000000 ;DIfi KESMELERI ETK.NLEfiT.R

 HIGH PORTA.2 'buzer
 pause 500
 low PORTA.2 'buzer
 pause 500


ANADONGU:
PAUSE 50 ;FARKLI OLCUMLER ARASINDAK. BEKLEME
SURE = 0
PIR1.0 = 0
HIGH VERICI ;40 KHZ L.K S.NYAL. GONDER
PAUSEUS 250
LOW VERICI
TMR1L = 0 ;TIMER1f. SIFIRLA
TMR1H = 0

WHILE 1=1 ;YANSIMAYI D.NLE
IF ALICI = 0 THEN
SURE.LOWBYTE = TMR1L ;YANSIMA ALINIRSA O ANK. TIMER DE.ER.N. TUT
SURE.HIGHBYTE = TMR1H

GOTO GOSTER
ENDIF

IF PIR1.0=1 THEN ANADONGU
WEND
GOTO ANADONGU


GOSTER:
LCDOUT $FE,1,"UZAKLIK" ;OLCULEN UZAKLI.I EKRANA YAZ
LCDOUT $FE,$C0,#((SURE)/58), " cm"
PAUSE 25
GOTO ANADONGU
end

koordinat

abi bu program hatalı yaw TRISB demişsin alıcıyı da vericiyi de çıkış yapmışsın,ayrıca lcd den düzgün görüntü alabiliyormusun?

mustafa_cmbz

lcd düzgün çalışıyor fakat hesaplama yapmıyor...cihan hocamın devresini de yaptım oda aynı şekilde yanlız onun devredeki 22n kondastölerden olmadığı için elimdeki farklı kondastörler ile deneme yapıyorum sonuç yine 00000cm oluyor...anlamadım acaba sorun nerde_?

EDİT: cihan hocamın devre çalıştı :D bunun papucuda dama atıldı...

modernherakles

"Devre semasında bulunan R14 adlı 4 Kohm'luk direncin degerinin yanlıs yazılmış ve 1 Kohm olması gerekiyor. Verici kısmın tam olarak çalışıp çalışmadığını anlamak için kulağınla dinlemelisin. Tik tik pulse atmalarını duyabiliyorsan verici çalışıyor demektir. Birde alıcı kısım çalışıyorsa devredeki led aynı şekilde atmalar halinde yanıyor olmalı.Ömer çayırpunar"

Bu alıntı devreyi hazırlayan kişi tarafından verildi belki çalışmasını sağlar
If we hear, we forget; if we see, we remember; if we do, we understand – Confucius

mustafa_cmbz

tık tık sesini duyabiliyorum onun haricinde 555 çıkına led bağladığımda tx yaptığını görebiliyorum...

alıcıdaki led devamlı yanıyor...
4r dediğiniz direnç yerine 1 takılıydı zaten...
bence sorun picli kısımda doğru dürst bişey olsaydı adamlar yayınlardılar zaten :D ben çalıştıramadım...

cihan hocamın yaptığı devre mükemmel çalışıyor...

erhanzeynel

Hocam sesle ölçüm yapıyorsunuz, mesafe 0cm çıkıyor sizce bu neden olur?

Bir yolu ohmmetre ile ölçtüğünüzde açık devre görmeniz gerekirken 0 ohm görmenize benziyor değil mi?

Bir şekilde ultrasonik vericinizin verdiği ses, hedefe gitmeden direkt olarak alıcınıza geliyor. Sensörler arasında ses izolasyonu sağlayın.
Sensörleri direkt olarak plakete lehimlemeyin, plakete yay gibi spirallenmiş ince tel ile bağlayın.

M_B

Merhaba Mustafa_cmbz hocam;
Oncelikle TX ve RX devren kesin olarak çalıştıgına karar vermek gerekir.
Elinde Osiloskop varsa
Once 555 entegren 3 nolu cıkısındaki sinyale bak. (  frekansına ve şeklini bir yere not al )

Daha sonra
U1 A nin 1 nolu pinini kontrol et nasıl bir sinyal var devamında U1 A nın 7 nolu cıkısına da bak. Buralarda sorun yoksa U2 nın A kısmın 1 nolu ucunuda olc ve sinyalleri kontrol et. ( Bunları sabit bir uzaklıkta iken olc. )
U2 nin A kısmının 1 nolu ucundaki sinyali bir yere ciz ( frekansi ve genligi not et. ) sonra uzaklıgı artır ve U2 nin 1 nolu ucundaki sinyali de not et ve bir onceki sinyalle karşılastir. Uzaklık artınca frekansta mı yoksa genliktemi degişme oluyor. Once bunu anla. Daha sonra Program kısmını halledersin. Timer ve interrup kısmı ile.

Umarım anlatabilmişimdir.  Biraz karsık olduda :)
Kolay gelsin.
M_B
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet