Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP

Stefan Rodemzgór 07 Nov 2014 19:45 1782 4
phoenixcontact
  • #1
    Stefan Rodemzgór
    Level 13  
    Witam,
    Temat może trochę enigmatyczny, a chodzi mniej więcej o coś takiego:
    Przymierzam się do budowy układu mikroprocesorowego, który ma zliczać impulsy i logować czas pomiędzy nimi do pamięci.
    W tym celu muszę wykrywać krótkie błyski czerwonej diody LED 3mm. Okres błysków zmienia się od około 200ms do 100s. Czas trwania błysku to ok 50ms. Nieznane mi są czasy narastania i opadania zbocza, ale przyjmuję że są odpowiednio krótkie.
    Dioda LED znajduje się w pomieszczeniu przechodnim. Zakres temperatur w ciągu roku to ok. 5-30 *C. Oświetlenie pomieszczenia dzienne, plus sporadycznie sztuczne (żarówka).

    Problemy na które się natknąłem są dwa:
    1-wybór odpowiedniego czujnika
    2-wzmocnienie sygnału z czujnika i uformowanie impulsu służącego do wyzwolenia przerwania w mikroprocesorze AVR ATMega32.

    Problem 1:

    Czujnik będzie znajdować się w pewnej odległości od diody, około 1-3cm. Dioda, to zwykła LED 3mm, długość fali prawdopodobnie 650nm. Błyski są dla człowieka wyraźnie widoczne z kilku metrów, nawet przy oświetleniu dziennym wpadającym przez okna. Ale co z czujnikiem? Czy da radę wykryć taki słaby błysk na tle (co prawda wolnozmiennego, ale kilka rzędów wielkości mocniejszego) oświetlenia słonecznego? Właściwie odpowiedź na to pytanie przesądza o sensie całego mojego przedsięwzięcia, a dla czytającego o celowości dalszej lektury tego tematu...

    Mam do dyspozycji kilka fotoczujników, ale nie wiem który mógłby się nadać. Nigdy wcześniej nie miałem styczności z fotodetektorami.

    Czujniki te to:
    - różnego pochodzenia fotodiody i fotorezystory, prawdopodobnie IR. W tym czujnik w czarnej obudowie prostopadłościennej, prawdopodobnie z drukarki. Ten czujnik reaguje na światło czerwone po zbliżeniu na odległość kilku milimetrów, przy warunkach półmroku i po podłączeniu jako LED1, do prowizorycznie zbudowanego układu wg schematu stąd.

    - IS474, wraz z płytką wymontowany z monitora CRT. Czułość jak dla oka ludzkiego (max dla 550nm)

    schemat z datasheet monitora, widać kondensator 10uF, który filtruje szybkie zmiany. Czy dałoby się zaadaptować jakoś ten schemat do moich potrzeb? Próbowałem symulacji schematu, ale próby były negatywne. Wykrywało tylko zmiany zbocza na wejściu czujnika (w roli czujnika generator prostokąta, czyli też niezbyt wierny model rzeczywistego czujnika, który, jeśli dobrze rozumiem datasheet - jest źródłem prądowym o ujemnym prądzie, rosnącym liniowo z natężeniem światła) i na wyjściu pojawiały się wtedy małe i króciutkie szpilki, dodatnie albo ujemne, w zależności od zbocza.
    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP

    schemat wewnętrzny IS1682:
    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP

    - czujniki scalone OPIC, PDIC, Front Power Monitor, wymontowane z napędów i nagrywarek CD, DVD. W sieci bardzo mało jest informacji o ich działaniu tudzież wykorzystaniu poza napędami.
    Jeden zidentyfikowany ( IS1682) - wada (wg mnie) czułość na falę 780nm,
    kilka niezidentyfikowanych, zdjęcia poniżej:

    układ z 12 wyprowadzeniami:
    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP

    układ niemal bliźniaczy, 14 wyprowadzeń:
    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP

    układ kontroli mocy światła lasera, 6 pinów, możliwe, że podobny do tego: GA104T1M2MZ
    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP

    czujnik z telefonu Nokia N95 8GB:
    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP


    Problem 2.

    W zależności od wyboru czujnika, czy to któregoś z powyższych, czy też zakupie innego (nie znalazłem nic ciekawego poza czujnikami typu ALS - ambient light sensor, stosowanymi w urządzeniach mobilnych, oraz czujniku RGB, tj 3 "gołe" fotodiody w jednej obudowie, bez żadnego przetwornika), trzeba sygnał odebrać, przefiltrować i uformować w wyraźny (z punktu widzenia mikrokontrolera) prostokąt (o czasie trwania zapewne takim, jak długość błysku diody, tj. 50ms).

    Można by też sformułować przy okazji wyboru czujnika problem 1b - osłonę detektora przed światłem zewnętrznym, jego umiejscowienie względem monitorowanej diody LED, a może nawet dołożenie jakiegoś układu soczewek zawężających kąty zbierania światła przez czujnik?



    Bardzo proszę o pomoc Kolegów, zarówno przy wyborze czujnika, ale szczególnie przy części analogowej, czyli filtracji i formowania sygnału. Strona analogowa budzi we mnie grozę. Zwłaszcza świadomość, że ma się do czynienia z sygnałami ciągłymi w czasie, o całym spektrum wartości. To już nie proste "albo zero, albo jeden". :cry:
  • phoenixcontact
  • #2
    Futrzaczek
    VIP Meritorious for electroda.pl
    Stefan Rodemzgór wrote:
    Czujnik będzie znajdować się w pewnej odległości od diody, około 1-3cm. Dioda, to zwykła LED 3mm, długość fali prawdopodobnie 650nm. Błyski są dla człowieka wyraźnie widoczne z kilku metrów, nawet przy oświetleniu dziennym wpadającym przez okna. Ale co z czujnikiem? Czy da radę wykryć taki słaby błysk na tle (co prawda wolnozmiennego, ale kilka rzędów wielkości mocniejszego) oświetlenia słonecznego?

    Da się - od tego są układy różniczkujące. Poczytaj sobie, jak te "źwierze" działają.
    Zwykły fototranzystor powinien dać sobie tutaj radę.
  • phoenixcontact
  • #3
    Stefan Rodemzgór
    Level 13  
    No dobrze, a zatem założyłem, że zastosowane będą fototranzystory o wąskich kątach, 5-8 stopni. Wykonałem próbną symulację dla typowego układu różniczkującego na wzmacniaczu operacyjnym. Na wyjściu pojawiają się oscylacje, albo brak zupełnie reakcji na impulsy wejściowe. Zamieszczam kilka zrzutów ekranu. Nie wiem jaką przyjąć stałą dla układu różniczkującego, czy taką jaka wynika z czasu trwania sygnału (50ms) czy czasów opadania/narastania zboczy? (Których to czasów nie znam, ale przyjąłem na czas symulacji że będzie to 10us). Inna sprawa: wzmacniacz nie jest zasilany symetrycznie, próbowałem rozwiązać ten problem dodając dzielniki na rezystorach. Ale napięcia na wyjściu i tak panują dziwne (ujemne). Pytanie, co dalej z sygnałem? Gdzieś tu na elektrodzie był wątek o formowaniu impulsów na jakimś układzie z wejściami Schmitta, ale u mnie wcześniej trzeba jeszcze wyprostować te "dziwne" ujemne impulsy na wyjściu.
    C1 = 1nF, R3 = 180kOhm, generator wpięty do R12 odtwarza losowy sygnał audio potraktowany filtrem niskopasmowym, częstotl. odcięcia 2Hz, drugi generator wytwarza impulsy o czasie 50ms, amplituda 50mV.

    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP
    narastanie 10us

    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP
    narastanie 10us, zbliżenie

    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP
    narastanie 100us

    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP
    100us, zblizenie

    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP
    C1 = 1uF

    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP
    C1 = 1nF

    Detekcja błysków czerwonej diody, formowanie impulsu dla wejścia INT w uP
    schemat
  • #4
    TvWidget
    Level 37  
    Stefan Rodemzgór wrote:
    Błyski są dla człowieka wyraźnie widoczne z kilku metrów, nawet przy oświetleniu dziennym wpadającym przez okna. Ale co z czujnikiem?

    Widzi te błyski dzięki ogniskowaniu obrazu na siatkówce. Umieść przed okiem jakiś rozpraszający materiał. Zapewne błysków już nie zobaczysz.
    Czym większy kąt "widzenia" czujnika tym więcej dociera do niego zakłóceń. Możesz nawet oszacować dla danego układu optycznego jaki uzyskasz stosunek sygnał/szum. Jak chcesz wykryć te impulsy z dużej odległości to zastosuj obiektyw od kamery z długą ogniskową. Jednak taki czujnik z wąskim kątem widzenia wymaga bardzo stabilnego zamocowania.
  • #5
    Stefan Rodemzgór
    Level 13  
    Tak, to prawda. Zdaję sobie z tego sprawę, dlatego fotodetektor będzie bliżej ( maksymalnie w odległości 10cm), niż te kilka metrów w przypadku człowieka ;). Nie umiem jednak poradzić sobie z najważniejszym - formowaniem impulsu. Układ różniczkujący daje dwie szpilki: przy narastaniu i opadaniu sygnału z fotoelementu. Mógłbym to wykorzystać do badania w mikroprocesorze czasu trwania błysku, aby mieć pewność, że odrzucone zostaną takie sygnały, dla których czas trwania nie mieści się w czasach błysku (50ms, +/- dokładność programowo regulowana). Tylko jak uformować te impulsy? Czytam różne tematy tu, na elektrodzie, oraz gdzieś tam w przepastnym Internecie, ale nic ciekawego, pod względem układowym nie znalazłem, co mogłoby pasować do mojej aplikacji. No chyba, że nie umiem tego zaadaptować.

    Czy odniósłby się ktoś do przedstawionego przeze mnie schematu oraz do wartości elementów? Czy byłby ktoś w stanie podpowiedzieć mi, co dalej zrobić z sygnałem?

    Obawiam się też jednej rzeczy: Jeśli pomieszczenie zostanie sztucznie oświetlone (żarówka, mniej prawdopodobnie świetlówka) to migotanie źródła światła może interferować z błyskami diody, bo czasy będą tego samego rzędu. Czy powinienem się tym przejmować? Może układ poradzi sobie z tym, że źródło światła nie posiada stromych zboczy załączania?