Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Transoptor odbiciowy i ATmega16

23 Paź 2013 10:50 2286 7
  • Poziom 8  
    Witam!

    Kupiłem ostatnio transoptor odbiciowy QRD1114 i chciałbym go podłączyć do ATmegi16. Piny tegoż transoptora odpowiedzialne za działanie fotodiody zostały podpięte i wszystko działa (sprawdzone kamerką czy dioda świeci). Niestety mam problem z odbiornikiem - jak go podłączyć oraz jak zaprogramować ATmegę tak bym mógł wiedzieć czy przed transoptorem jest kartka biała czy jej tam nie ma?
    Czytałem kilka artykułów, patrzyłem na schematy (podam niżej przykładowy), ale nie mogę jakoś tego zrobić.

    Schemat podłączenia transoptora. U mnie wyjściem jest PIN B0
    Transoptor odbiciowy i ATmega16

    Bardzo prosiłbym o pomoc bardziej doświadczonych kolegów :)
  • Moderator Mikrokontrolery Projektowanie
    Witaj.

    Pin do którego podłączysz kolektor tranzystora ustawiasz jako wejście. Gdy kartka będzie biała tranzystor zacznie przewodzić, ustawiając na pinie stan niski. Gdy czarna - będzie odwrotnie. Wystarczy więc odczytać stan tego pinu i po sprawie. Niestety nie podałeś języka programowania więc dla C będzie to na przykład:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Swoją drogą jako rezystor R4 mógłbyś wykorzystać wewnętrzny rezystor pull-up. W C włączysz go następująco (dodając do powyższego programu przed pętlą while():

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Powyższy opis dotyczy oczywiście sytuacji, gdy kartka jest biała lub czarna i zgodnie z dokumentacją tego transoptora znajduje się w odległości 10-50mils, czyli od 0,25mm do 1,27mm od czujnika. Jeżeli odległość będzie mniejsza lub większa, czułość spada zgodnie z wykresem na stronie 5: http://www.fairchildsemi.com/ds/QR/QRD1114.pdf

    Oznacza to, że przy większych odległościach na tranzystorze mogą pojawiać się napięcia pośrednie, które nie zostaną prawidłowo zinterpretowane przez mikrokontroler jako jedynka lub zero - wiedza w tym zakresie: http://mikrokontrolery.blogspot.com/2011/04/jak-mikrokontroler-widzi-sygnal-cyfrowy.html

    W takiej sytuacji należy dodać komparator zewnętrzny lub wykorzystać ten dostępny w mikrokontrolerze w celu ustalenia progu rozpoznawania jedynki i zera, w zależności od Twoich potrzeb.

    O transoptorach odbiciowych: http://mikrokontrolery.blogspot.com/2011/04/transoptor.html

    Następne pytania zadawaj w dziale: https://www.elektroda.pl/rtvforum/forum12.html
  • Poziom 8  
    Dziękuję za wyczerpującą odpowiedź. Większość z tych stron już wcześniej przejrzałem i jakąś wiedzę teoretyczną posiadam, lecz niestety na moim małym układziku nie chce mi zadziałać, tzn nie widzi białej kartki. Wszystko wydaje się być dobrze podłączone. Może wstawię zdjęcie układu (nie wiem czy to żartem ktoś określił, ale może to pomóc)?

    Transoptor odbiciowy i ATmega16

    Ta dioda czerwona po prawej ma za zadanie pokazać czy widzi, białą kartkę. Niektóre kabelki od ATmegi16 są podłączone do pinów A, ale to do innego projektu, tylko PINA jest na reakcję diody.
  • Moderator Mikrokontrolery Projektowanie
    Pokaż także program.
  • Poziom 8  
    Program to w większości Twój kod, z jedną małą poprawką - dopisałem x bo zapomniałeś, oraz to by moja dioda świeciła.
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Moderator Mikrokontrolery Projektowanie
    1. Kompiluje się bez problemu?
    2. Masz multimetr? Jeżeli tak sprawdź, napięcie na kolektorze tranzystora podczas zbliżania białej kartki.
    3. Aby sprawdzić na podstawie zdjęcia, dobrze byłoby, byś usunął zbędne przewody.
    4. Miganie diodami bez transoptora rozumiem, że już przerobiłeś i działa OK?

    BTW:
    w przyszłości: http://mikrokontrolery.blogspot.com/2011/03/fcpu-gcc-gdzie-definiowac.html
  • Poziom 8  
    1. Wyskakuje tylko re definicja F_CPU reszta prawidłowo.
    2. Niestety nie mam, ale postaram się jakoś to sprawdzić - np na uczelni.
    3. Cały interesujący obszar jest bardzo dobrze widoczny (wg mnie), ale mogę oczywiście usunąć inne jeżeli masz ochotę - napisz. Ale tak jak mówiłem wcześniej wszytko sprawdzałem i wydaje się prawidłowo.
    4. Tak, "zabawy" diodami wychodzą mi już całkiem nieźle :)

    Czy sądzisz, że źle ustawiłem taktowanie? Jeżeli tak to jakiś poradnik internetowy wprowadził mnie w błąd :P