Skocz do zawartości

TSOP1736, spostrzerzenia i pytania??


szyss

Pomocna odpowiedź

Witam

Testuję sobie właśnie układ wykrywania przeszkód oparty na TSOP1736, diody nadawczej IR, oraz atmedze, która generuję częstotliwość 36kHz.

1. TSOP + 1 dioda, zasilanie 5V, R diody=220ohm, wszystko fajnie, jednak zmiana na R=150ohm spowodowała że nie non stop odbiornik wykrywał sygnał a był zasłonięty z wszystkich stron, później zaczął działać jak należy(rano to samo ciągle wykrywanie sygnału, przeniosłem kondensator i rezystor jak najbliżej łapki zasilania TSOP(elementy z noty katalogowej))

2. Przed przeniesieniem konda i rezystora blisko TSOP, włożenie R diody=100ohm powodowało znów ciągłe wykrywanie, nawet nie wiadomo jak by mocno odsłonić odbiornik, tak samo testowałem 2 diody święcące jednocześnie, max R diod jakie były dopuszczalne i układ działał to ok 460ohm

3. Po przeniesieniu konda i rezystora do plusa zasilania tsop jak najbliżej mam 2 diody działające na raz, i każda ma rezystor 100ohm i jakoś to działa

4. Chciałem zrobić wykrywanie impulsowe, i tak włączam diody czekam 500ms, odczytuje stan wyłączam diody na 500ms, wszystko ładnie działa, jednak jeśli diody włączę na 100ms, a wyłączę na 500ms od razu odbiornik ustawia się że wykrył wiązkę i ciągle pokazuje mi że odbiera fale, w tym momencie na procku, gdzie badam stan mam napięcie troszkę mniejsze od zasilania ale skacze, niestety bez analizatora stanów, albo oscyloskopu nie mogę dokładnie zbadać co się dzieje złego, jak bym miał jakiś inny odbiornik to bym zrobił testy jednak nie posiadam takiego;-)

Pozdrawiam i pytam się czy spotkał ktoś się z takimi dziwnymi sprawami heh;-)

Link do komentarza
Share on other sites

Witam.

Ostatnio bawiłem się TSOP34838 i też jeszcze nie działa mi jak należy,
ale z Twojego posta nic nie rozumie.

Co w końcu działa a co nie.

Odnośnie czujnika zbliżeniowego na IR to mogę Ci polecić:

http://www.lynxmotion.com/images/data/irpd-v7.pdf

Masz tam m.in. schemat i prosty programik napisany w Basicu.

Może to coś pomoże...

Ten czujnik na 100% działa poprawnie, bawiłem się nim i działa bez zarzutu.

A to jest faktem, że trzeba osłaniać diody bo promieniują na boki,
a może masz jakieś przeszkody od których się sygnał odbija...

Link do komentarza
Share on other sites

Czujnik, po 10-70 cyklach nadawania potrzebuje minimum 14 cykli przerwy, by poprawnie wykrywać transmisję. Inaczej zaczyna się gubić i wykrywa tylko szybko poruszające się przedmioty. Ja w swoim robocie uzyskałem zasięg ok 2m (biała ściana), konieczne było ograniczenie prądu diody.

Tutaj 2 wersje kodu w C dla PICów. Obecnie nie mam jak tego sprawdzić, bo jestem w trakcie konstrukcji robota gąsienicowego. Z tego co pamiętam, pierwszy kod (a zatem nowszy) działał o wiele lepiej 🙂 Przerywanie w pierwszym kodzie powinno być (CHYBA) co 44us, co do drugiego to nie pamiętam. Oba kody są pisane pod obsługę 2 diod (podłączenie jak w układzie z linku powyżej), więc przerobienie tego na jedną diodę powinno być banalnie proste. Oraz w pierwszym kodzie zrobiłem lepszy cykl przerwy, ze wstępnym zapaleniem diody (PWM) i odczekaniem chwili, aż czujnik się ustabilizuje.

P.S. Tu mogę dodać, że nigdy nie osłaniałem diody i czujnika, ba, nawet były blisko siebie i TSOP nigdy nie wyłapywał nic od diody.

    //***** Podczerwień *****
    a++;

       if ((a > 0) & (a <= 20)) { //***** IR 1 dla a nieparzystego*****
          IR1 = 1;
          IR2 = 0;
          if (a > 5) {
          if (TSOP == 0) d1 = 1;
          else d1 = 0;
          }
       }
       else if ((a > 20) & (a <= 40)) {
          IR1 = 0;
          IR2 = 0;
       }
       else if ((a > 40) & (a <= 60)) {//***** IR 2 *****
       IR1 = 0;
       IR2 = 1;
       if (a > 45) {
            if (TSOP == 0) d2 = 1;
            else d2 = 0;
            }
       }
       else if ((a > 60) & (a <= 80)) {
          IR1 = 0;
          IR2 = 0;
       }

       if (a==80) a = 0;

     //***** Żeby nie było, że są jakieś zakłócenia *****
     for (i = 8; i < 10; i--) {
         aaa[i+1] = aaa[i];
         bbb[i+1] = bbb[i];
     }

     aaa[9] = d1;
     bbb[9] = d2;

     if (aaa[0] & aaa[1] & aaa[2] & aaa[3] & aaa[4] & aaa[5] & aaa[6] & aaa[7] & aaa[8] & aaa[9]) out1 = 1;
     else out1 = 0;
     if (bbb[0] & bbb[1] & bbb[2] & bbb[3] & bbb[4] & bbb[5] & bbb[6] & bbb[7] & bbb[8] & bbb[9]) out2 = 1;
     else out2 = 0;
 //***** Podczerwień *****
    a++;
    if (a < 63) {
       if (a & 1) { //***** IR 1 dla a nieparzystego*****
          if (a > 5) {
          if (TSOP == 0) d1 = 1;
          else d1 = 0;
          }
          IR1 = 1;
          IR2 = 0;
       }
       //else if (a & 0b1) IR1 = 0;
       else  {//***** IR 2 *****
       if (a > 5) {
            if (TSOP == 0) d2 = 1;
            else d2 = 0;
            }
            IR1 = 0;
            IR2 = 1;
       }
       //else if (a & 0b11) IR2 = 0;
     }
     else { //***** 14 cykli przerwy wg noty katalogowej TSOP *****
        if (a == 76) a = 0;
        IR1 = 0;
        IR2 = 0;
     }
Link do komentarza
Share on other sites

Ja robiłem czujnik odbiciowy do mojego "Prototypa" (link w podpisie) trochę innym sposobem, ale mogę się podzielić spostrzeżeniami.

1. Mój czujnik miał inną architekturę, był na układzie NE555 i dwóch diodach IR, ale ilość diod nie gra roli, bo można to łatwo dostosować. Elementy przy układzie NE555 obliczyłem programem "555 Designer".

2. Do osłonięcia diod IR idealnie nadają się rurki aluminiowe, które można kupić w niektórych sklepach typu Praktiker, Castorama, niektóre mają średnicę wewnętrzną 5mm i można je założyć "na wcisk", wystarczy tylko przyciąć na odpowiednią długość (rurka musi zakrywać całą diodę, ale nie może być zbyt długa). Dodatkowa zaleta to to że estetycznie wygląda.

3. Katoda każdej z diod IR była połączona z uC, co pozwalało na włączanie i wyłączanie diod przez procesor (ATmega8), czujnik TSOP1736 podłączony oczywiście do mikroprocesora. Jako ograniczenie prądu diod IR (czyli regulacja jasności świecenia) zastosowałem potencjometr.

4. Program był pisany w BASCOMIE, ale opierał się na prostej regule:

-ustawione dwie zmienne typu bit dla każdej diody jedna (przykładowo "a" i "b"), obie w stan 0

-obie diody wyłączone

-włączenie jednej diody na czas 40ms, odczytanie stanu TSOP'a, jeżeli sygnał się odbił (jest przeszkoda) to ustaw zmienną "a" na 1, jeżeli nie zmienna "a" = 0, wyłącz diodę.

-włączenie drugiej diody na czas 40ms, odczytanie stanu TSOP'a, jeżeli sygnał się odbił (jest przeszkoda) to ustaw zmienną "b" na 1, jeżeli nie zmienna "b" = 0, wyłącz diodę.

-funkcja warunkowa: jeżeli "a"=0 i "b"=0 to brak przeszkody, jeżeli "a"=1 i "b"=0 to przeszkoda po jednej stronie, jeżeli "a"=0 i "b"=1 to przeszkoda po drugiej stronie, jeżeli "a"=1 i "b"=1 to przeszkoda po obu stronach.

-zerowanie zmiennych "a" i "b", pętla od początku

Przy pomocy potencjometru można regulować czułość układu w dużym zakresie, mnie sie udało na białej ścianie uzyskać ok. 1,5m. W zasadzie program działa tak, że diody migają na przemian, a czujnik odczytuje czy sygnał z danego kierunku (diody) odbił się czy nie. Te 40ms można dostosować zmieniając wartość, ale przeczytałem gdzieś że gdy przez dłuższy czas czujnik TSOP1736 odbiera 1 (odbiera odbite promieniowanie) to potrafi się zawiesić.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

dzięki za rady, w skrócie chcę tylko powiedzieć tyle

włączając diody czekając około 100ms, następnie badając stan na TSOP, a potem wyłączając diody na pół sekundy i tak cyklicznie, czyli powiedzie że dość wolno wszystko(jak na mikroprocka) nie wiem jakim cudem ale TSOP ciągle niby pokazuje że przedmiot wykryto(czyli zero logiczne na tsop) a ,miernikiem widzę tam napięcie około 4.8V, myślę że zrobię podwójne sprawdzanie zaraz po włączeniu diod i krótkim odczekaniu, a drugie sprawdzenie po troszkę dłuższym odczekaniu.

Pozdrawiam, jak bym miał masę czasu to bym to doprowadził do perfekcji, niestety czas mi ucieka a masa roboty jeszcze mi została

Pozdrawiam jeszcze raz

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.