logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zwiększyć zasięg diody IR w czujniku ruchu z Atmega32 i TSOP1736?

mi14chal 07 Paź 2012 20:58 2490 12
  • #1 11388099
    mi14chal
    Poziom 28  
    Próbuje zrobić czujnik ruchu przy użyciu TSOP1736 i LD271. Atmega taktowana jest wewnętrznym oscylatorem 8MHz. Mam taki kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    TSOP jest podłączony do portu PD2, dioda jest podłączona według tego schematu http://www.forbot.pl/forum/upload_img/obrazki/IMG_4f3ffe08d5cbd7511.png tylko z innymi wartościami R1 = 470 R2 = 23 i tranzystor 2N2222. Problem jest taki że zasięg jaki udało mi się uzyskać to nie całe 20 cm, natomiast jak użyje pilota od TV to nadajnik odbiera sygnały z dużo większej odległości. Jakieś propozycje jak zwiększyć zasięg diody LD271?
  • #2 11388570
    excray
    Poziom 41  
    Pozornie jest OK. Z tym że pilot wysyła sygnał w szpilkach o wypełnieniu kilka % (u Ciebie jest 50%) z tym że w tych szpilkach płynie znacznie większy prąd niż u Ciebie a więc do TSOP dociera znacznie silniejszy sygnał. Mimo wszystko 20cm to mało i ja bym sprawdził czy na wyjściu jest na pewno 36kHz.
  • #3 11390246
    mi14chal
    Poziom 28  
    Z racji tego że nie posiadam miernika by zmierzyć częstotliwość więc zmieniałem wartość OCR1A i było to samo więcej jak 20 cm nie ma. No jak troszkę zmiejszyłem wartość R2 to tak ledwo ledwo zwiększyło się do 25 cm. Nawet wymiana diody IR nic nie pomaga zasięg wtedy też jest taki sam.
  • #5 11391300
    mi14chal
    Poziom 28  
    Mam laptopa więc nie mam żadnych portów LPT ani RS-232.
  • #6 11391865
    mirekk36
    Poziom 42  
    Po pierwsze sprawdź czy aby na pewno masz fusy ustawione na taktowanie 8 MHz ? bo jeśli przez przypadek nie - to sam sobie zdajesz sprawę że z nośną będzie taki kiepsko - że wtedy nie dziwne iż TSOP ledwo ją widzi.

    po drugie czy podciągnąłeś wyjście TSOP'a rezystorem 10K do VCC (samo podciąganie rezystorem programowym jest za duże)

    po trzecie czy dałeś filtr na zasilaniu tsop'a czyli rezystor 100R i kondensator elektrolityczny 4,7uF ? (warto)

    poza tym bez oscyla i LPT możesz sprawdzić zasięg łatwiej - podłącz że diodę LED na wyjście TSOP'a katodą przez jakiś rezystor nawet 1K i sprawdź jak miga i z jakiej odległości ..... to od razu ci wiele wyjaśni a przy okazji upewnisz się czy właśnie np przypadkiem coś z fuskami jest nie tak jak trzeba ?
  • #7 11393294
    spinlock
    Poziom 11  
    Może przy OCR1A = 111 timer liczy 112 cykli biorąc pod uwagę 0 przy przepełnieniu ale nie jestem tego pewien.
    Jeżeli tak by było to:

    ((8000000Hz/112)/2 = 35714HZ

    więc do 36000Hz troche brakuje.
  • #9 11393390
    excray
    Poziom 41  
    spinlock napisał:
    ((8000000Hz/112)/2 = 35714HZ

    więc do 36000Hz troche brakuje.

    Więc wpisz 110 czyli 8000000/111/2 = 36036Hz
    Zresztą to tylko kosmetyczna uwaga bo czujnik tak czy siak powinien to odbierać.
  • #10 11393435
    mi14chal
    Poziom 28  
    mirekk36 napisał:
    Po pierwsze sprawdź czy aby na pewno masz fusy ustawione na taktowanie 8 MHz ? bo jeśli przez przypadek nie - to sam sobie zdajesz sprawę że z nośną będzie taki kiepsko - że wtedy nie dziwne iż TSOP ledwo ją widzi.


    Fusy na pewno dobrze ustawione.

    mirekk36 napisał:
    po drugie czy podciągnąłeś wyjście TSOP'a rezystorem 10K do VCC (samo podciąganie rezystorem programowym jest za duże)


    Dałem rezystor 10k i wyłączyłem podciąganie, nic się nie zmieniło.

    mirekk36 napisał:
    po trzecie czy dałeś filtr na zasilaniu tsop'a czyli rezystor 100R i kondensator elektrolityczny 4,7uF ? (warto)


    Jest od początku.

    mirekk36 napisał:
    poza tym bez oscyla i LPT możesz sprawdzić zasięg łatwiej - podłącz że diodę LED na wyjście TSOP'a katodą przez jakiś rezystor nawet 1K i sprawdź jak miga i z jakiej odległości ..... to od razu ci wiele wyjaśni a przy okazji upewnisz się czy właśnie np przypadkiem coś z fuskami jest nie tak jak trzeba ?


    Podpięcie diody bezpośrednio do wyjścia TSOP'a daje taki sam rezultat jak dołączona listwa diodowa do portu A.

    excray napisał:

    Więc wpisz 110 czyli 8000000/111/2 = 36036Hz
    Zresztą to tylko kosmetyczna uwaga bo czujnik tak czy siak powinien to odbierać.


    Zmieniłem, dalej zasięg nie przekracza 20cm.
  • #11 11393537
    excray
    Poziom 41  
    Ja na Twoim miejscu bym zmienił koncepcję. Wypełnienie nie 50% ale na przykład 10-20% i dużo większy prąd na diodę - zobacz jak to jest zrobione w pilotach TV.
  • #12 11394058
    Andrzej__S
    Poziom 28  
    W dokumentacji TSOP1736 można przeczytać:
    Cytat:

    The distinguishing mark between data signal and
    disturbance signal are carrier frequency, burst length
    and duty cycle.


    The data signal should fullfill the following condition:
    • Carrier frequency should be close to center
    frequency of the bandpass (e.g. 38kHz).
    • Burst length should be 10 cycles/burst or longer.
    • After each burst which is between 10 cycles and 70
    cycles a gap time of at least 14 cycles is neccessary.
    • For each burst which is longer than 1.8ms a
    corresponding gap time is necessary at some time in
    the data stream. This gap time should have at least
    same length as the burst.

    • Up to 1400 short bursts per second can be received
    continuously.


    Cytat:

    Some examples for such disturbance signals which
    are suppressed by the TSOP17.. are:
    • DC light (e.g. from tungsten bulb or sunlight)
    • Continuous signal at 38kHz or at any other
    frequency

    • Signals from fluorescent lamps with electronic
    ballast (an example of the signal modulation is in the
    figure below).


    Obawiam się, że taka ciągła nośna, jaką masz w swoim programie nie zda egzaminu. To powinny być rozbłyski, które trwają 10 do 70 cykli, po nich przerwa co najmniej 14 cykli, itd. (patrz dokumentacja). Ciągła nośna jest tłumiona.

    EDIT:
    Jeśli masz problem z implementacją, sprawdź, jak to jest zrobione np. tutaj:Link (nie gwarantuję, że działa, nie sprawdzałem). Oczywiście w programie należy pozmieniać litery portów, numery pinów itd. adekwatnie do swojego procesora, taktowania i schematu.
  • #13 11405591
    mi14chal
    Poziom 28  
    Jak na razie widać że działa, tzn zasięg jest dużo większy, ale teraz troszkę inny problem. Gdy ustawię diodę IR i odbiornik obok siebie to odbiornik odbiera sygnał z diody. Próbowałem zasłonić diodę IR czarną taśmą izolacyjną, odbiornik z tyłu też był osłonięty, ale to nic nie pomogło jakieś propozycje?
REKLAMA