Mam taki mały problemik. Potrzebuję zrobić czujnik zmierzchu z regulacją czułości za pomocą procesora. Wejścia ADC mam w procku zajęte więc muszę zrobić to jakimś innym sposobem.
Wpadłem na pomysł że wykorzystam do tego wzmacniacz operacyjny LM358, na jego wejście nieodwracające dam sygnał z fotorezystora natomiast na odwracające od strony plus będzie rezystor a od masy będę podawał PWM przez tranzystor. Wszystko według schematu niżej. Niestety nie mam tego jak sprawdzić a miało by to być częścią większego układu.
I teraz pytanie, czy ma to szansę zadziałać i jakie dobrać wartości elementów ?
Koncepcja tego układu jest taka że wiadomo, dopóki napięcie na wejściu nieodwracającym jest niższe niż na odwracającym to na wyjściu mamy poziom L. Więc w teorii regulując PWM reguluję próg przełączania się wzmacniacza operacyjnego a co za tym idzie otrzymam co założyłem.
Czujnik zmierzchu z regulacją z procesora - pytania
Czujnik zmierzchu z regulacją z procesora - pytania
- Załączniki
-
- czujnik zmierzchu z regulacją z procesora.png (4.18 KiB) Przejrzano 5607 razy
Można by też potraktować R48, C18 i T8 jako najprostszy generator przebiegu piłokształtnego (R49 zastąpić zworą). Po podaniu stanu niskiego na wejście (baza T8) procesor rozpoczynał by zliczanie czasu, a zmiana stanu na wyjściu komparatora IC2A zatrzymywała by ten proces. Zliczony czas byłby wtedy wprost proporcjonalny do stopnia oświetlenia fotorezystora. Byłby to taki najprostszy przetwornik A/D.
Pomysł dobry jeśli musisz śledzić aktualną jasność i wykryć moment kiedy przekroczyła zadany próg.
Jeśli natomiast potrzebujesz tylko orientacyjny pomiar jasności bez dużej dokładności, to da się to zrobić jednym pinem, najlepiej sprzętowym wejściem sterującym licznikiem (ICP)
Budujesz jeden obwód RC gdzie R to fotodioda, fototranzystor lub fotorezystor ładując kondensator. Do tego jakiś rezystor ograniczający prąd pinu AVR.
Wymuszając stan wyjściowy rozładujesz kondensator. Następnie przestawiasz wyjście w wysoką impedancję, włączasz timer i co jakiś czas badasz czy wejście zmieniło stan. Jako że wejście jest podłączone pod pin ICP timera, po zmianie stanu timer przestanie zliczać więc nie trzeba go często odpytywać. A jeśli timer się przepełni bez zmiany stanu, dostaniesz przerwanie timera, które oznacza konieczność zmiany preskalera.
Jeśli natomiast potrzebujesz tylko orientacyjny pomiar jasności bez dużej dokładności, to da się to zrobić jednym pinem, najlepiej sprzętowym wejściem sterującym licznikiem (ICP)
Budujesz jeden obwód RC gdzie R to fotodioda, fototranzystor lub fotorezystor ładując kondensator. Do tego jakiś rezystor ograniczający prąd pinu AVR.
Wymuszając stan wyjściowy rozładujesz kondensator. Następnie przestawiasz wyjście w wysoką impedancję, włączasz timer i co jakiś czas badasz czy wejście zmieniło stan. Jako że wejście jest podłączone pod pin ICP timera, po zmianie stanu timer przestanie zliczać więc nie trzeba go często odpytywać. A jeśli timer się przepełni bez zmiany stanu, dostaniesz przerwanie timera, które oznacza konieczność zmiany preskalera.
Komparator analogwy w CPU też masz zajęty ?
W sumie mikroprocesory PIC mają specjalnie do tych celów zaprojektowany komparator analogowy bo może on współpracować z przetwornikiem C/A (DAC) który siedzi w środku CPU.
Ja takie coś robię sobie wtedy tak jak na rysunkach niżej i mam to w pełni programowo konfigurowalne.
W sumie mikroprocesory PIC mają specjalnie do tych celów zaprojektowany komparator analogowy bo może on współpracować z przetwornikiem C/A (DAC) który siedzi w środku CPU.
Ja takie coś robię sobie wtedy tak jak na rysunkach niżej i mam to w pełni programowo konfigurowalne.
Polutowałem sobie na pająka ten układzik i działa jak chciałem. Teraz układ wygląda tak jak na obrazku niżej tylko wartości elementów trochę inne a kondensatory muszę dobrać doświadczalnie bo nie wiem jak się zabrać do ich obliczenia. Chyba że ktoś podpowie to chętnie sobie obliczę.

Dodatkowo programowo będzie tak napisane że chwilowe oświetlenie czujnika nawet do 3 sekund nie spowoduje zmiany stanu przekaźnika. Czas oświetlenia czujnika te 3 sekundy może być regulowany.
Poniżej film prezentujący działanie.
Oczywiście przyznaję że największym problemem będzie umiejscowienie czujnika, ale po to tak chciałem regulować z procesora próg zadziałania żeby się trochę dostosować do warunków miejsca w którym umieszczę czujnik.
-> LINK DO FILMU <-
Dodatkowo programowo będzie tak napisane że chwilowe oświetlenie czujnika nawet do 3 sekund nie spowoduje zmiany stanu przekaźnika. Czas oświetlenia czujnika te 3 sekundy może być regulowany.
Poniżej film prezentujący działanie.
Oczywiście przyznaję że największym problemem będzie umiejscowienie czujnika, ale po to tak chciałem regulować z procesora próg zadziałania żeby się trochę dostosować do warunków miejsca w którym umieszczę czujnik.
-> LINK DO FILMU <-