Witam serdecznie.
Konstruuje coś co może kiedyś będzie centralką alarmu i mam problem z obsłużeniem czujników ultradźwiękowych. Zakupiłem jedne z najtanśzych para odbrionik nadajnik. Wszystko podłączone wg. schematu.
Ponizej kod programu:
Jest w nim też troche rzeczy nie związanych z samym sterowaniem/odczytem czujników.
Poprzez timer wysterowuje potrzebne 40kHz do nadajnika. Do odbiornika musiałem zastosować wzmacniacz bo napięcia był rzędy mV, po wzomcnieniu są wielkości ok. 1V.
Generalnie czujniki mają działać w ten sposób że wykrywa przeszkodze, gdy przeszkoda zniknie to włącza alarm. Sam proces odbioru informacji zaczerpnąłem z projektu sonaru/pomierzowalnika odległośći który ktoś zamieścił na forum diody.
Koncept jest dość prosty, sterujemy nadajnik żeby wysłał sygnał, "rozładowujemy pojemność przetwornika wejściowego, poprzez zwarcie do masy", po czym ustawiamy go jako wejście i wchodzimy w pętle która ma zliczać ilość przejść aż do chwili kiedy przyjdzie sygnał powrotny do odbiornika- czyli nasz komparator.
Problem polega na tym, że praktycznie zawsze zliczonych pętli mam 0, nawet w chwili kiedy czujniki fizycznie nie mają możłiwości przekazać sobie informacji, czasami pojawia się 1 lub 2 nie wiedzieć dlaczego.
Całość umieszona jest na płytce zl8avr - kit dla początkujących, razem z procesorem w odpowiedniej obudowie pasującym do płytki.
Bardzo proszę o pomoc i swieże zerknięćie okiem na to, siedze nad tym już którąś noc z rzędu, przeglądnąłem z milion tematów, ale albo już mam zakłócenia w odbiorze rzeczywistośći, albo co bardziej prawdopodobne jakieś luki w wiedzy w tym temacie. Będe wdzięczny za wszystkie sugestie.
Fusebity ustawione 8MHz wew kwarc, nie wiem jakie informacje jeszcze podać, czekam na ewentualne pytania.
(dodam tylko że choć może to nie ma sensu zamieniałem już AIN0 z AIN1 po prostu próbuje już wszystkiego)
Jezcze jedno jak usunę wejśćie "transmisyjne" z komparatora do pętla zlicza zgodnie z założeniami czyli do końca.
Dziękuje i pozdrawiam.
Konstruuje coś co może kiedyś będzie centralką alarmu i mam problem z obsłużeniem czujników ultradźwiękowych. Zakupiłem jedne z najtanśzych para odbrionik nadajnik. Wszystko podłączone wg. schematu.
Ponizej kod programu:
$regfile = "m16def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 8
$framesize = 8
Enable Interrupts
Config Lcd = 16 * 2
Display On
Cursor Off Noblink
Cls
Baud = 19200
Const Sizebuff = 20
Config Serialin = Buffered , Size = 20
Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1
Dim Echos As Integer
Pwm1a = 100
Do
Echos = 0
Cls
Lcd "START"
Start Timer1
Wait 1
Stop Timer1
Waitus 8
Config Portb.2 = Output
Portb.2 = 0
Waitus 8
Config Pinb.2 = Input
For Echos = 0 To 2000
If Acsr.aco = 1 Then Exit For
Next Echos
Wait 1
Lowerline
Lcd Echos
Wait 1
Loop
Jest w nim też troche rzeczy nie związanych z samym sterowaniem/odczytem czujników.
Poprzez timer wysterowuje potrzebne 40kHz do nadajnika. Do odbiornika musiałem zastosować wzmacniacz bo napięcia był rzędy mV, po wzomcnieniu są wielkości ok. 1V.
Generalnie czujniki mają działać w ten sposób że wykrywa przeszkodze, gdy przeszkoda zniknie to włącza alarm. Sam proces odbioru informacji zaczerpnąłem z projektu sonaru/pomierzowalnika odległośći który ktoś zamieścił na forum diody.
Koncept jest dość prosty, sterujemy nadajnik żeby wysłał sygnał, "rozładowujemy pojemność przetwornika wejściowego, poprzez zwarcie do masy", po czym ustawiamy go jako wejście i wchodzimy w pętle która ma zliczać ilość przejść aż do chwili kiedy przyjdzie sygnał powrotny do odbiornika- czyli nasz komparator.
Problem polega na tym, że praktycznie zawsze zliczonych pętli mam 0, nawet w chwili kiedy czujniki fizycznie nie mają możłiwości przekazać sobie informacji, czasami pojawia się 1 lub 2 nie wiedzieć dlaczego.
Całość umieszona jest na płytce zl8avr - kit dla początkujących, razem z procesorem w odpowiedniej obudowie pasującym do płytki.
Bardzo proszę o pomoc i swieże zerknięćie okiem na to, siedze nad tym już którąś noc z rzędu, przeglądnąłem z milion tematów, ale albo już mam zakłócenia w odbiorze rzeczywistośći, albo co bardziej prawdopodobne jakieś luki w wiedzy w tym temacie. Będe wdzięczny za wszystkie sugestie.
Fusebity ustawione 8MHz wew kwarc, nie wiem jakie informacje jeszcze podać, czekam na ewentualne pytania.
(dodam tylko że choć może to nie ma sensu zamieniałem już AIN0 z AIN1 po prostu próbuje już wszystkiego)
Jezcze jedno jak usunę wejśćie "transmisyjne" z komparatora do pętla zlicza zgodnie z założeniami czyli do końca.
Dziękuje i pozdrawiam.
