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

Programowalny włącznik oświetlenia - jak zrealizować pomiar?

29 Sty 2008 18:12 4992 35
  • Poziom 24  
    Pracuje nad projektem programowalnego włącznika oświetlenia. Konstrukcja opiera się na µC ATmega8, sterowanie za pomocą klawiatury 4x4 + wyświetlacz LCD. Problem w tym, że chcę mieć możliwość płynnego przestrajania poziomy naświetlenia, przy jakim układ ma się załączyć. Planuje skorzystać z wbudowanego przetwornika A/C i programowo ustawiać wartość graniczną, ale nie wiem, jaki układ pomiarowy zastosować żeby to poprawnie działało? Natężenie światła planuje mierzyć za pomocą fotorezystora, a mój pomysł to:

    Programowalny włącznik oświetlenia - jak zrealizować pomiar?
    W schemacie zaszła mała pomyłka, bo zamiast układu LM308 powinno być LM358

    Parametry fotorezystora, jaki posiadam:
    Pmax 100mW
    oraz rezystancja dla:
    10 lux 90-150k
    100 lux 15-20k

    Czy moje rozwiązanie jest odpowiednie? Jeśli nie, to jak zrealizować taki pomiar
  • W2 Usługi badań i pomiarów
  • Poziom 15  
    To nie lepiej wartosc zadana wykonac na PWM z filtrem RC o malej stalej czasowej ?? podac ta wartosc na wzmacniasz a z fotorezystora zrobic dzielnik napiecia i mierzac A/C wbudowanym w ATmege programowo sterowac zalaczanie i wylaczaniem ...

    Pozdrawiam
  • Poziom 24  
    No cos trochę jarzę, ale nie jestem zbyt biegły w tych sprawach, więc jeśli można troszkę jaśniej może jakiś schemacik? Ja już się zabieram za uzupełnianie swojej wiedzy w tym temacie;)

    Pozdro

    Dodano po 30 [minuty]:

    Oki już się doszkoliłem, co to jest PWM i jak działa, ale nadal nie bardzo rozumie jak to zastosować? Mój pomysł polega na tym, że porostu w pętli głównej programu co jakiś czas wywołać funkcje sprawdzającą poziom napięcia na przetworniku A/C i porównać je z wartością zapisana w pamięci programu.
  • W2 Usługi badań i pomiarów
  • Poziom 15  
    PWM - Poulse width modulation (Regulacja szerokosci impulsu) poczytaj sobie na necie jest pelno o tym :) w bascom jest dosc prosta obsluga PWM i dlatego Ci polecilem...

    Oczywiscie mozna zrobic wszystko jeszcze prosciej :) wystarczy zrobic dzielnik napiecia: fotorezystor szeregowo z rezystorem, aby unikanc pradu zwarcia...
    Pomiar napiecia (max do 5V tak musisz dobrac dzielnik) na A/C i do wyjsica uP mozesz podpiac tranzystor sterujacy przekaznikiem. I w zaleznosci od poziomu zalaczac lub wylaczac uklad.

    Co do schamatu to narazienie nie mam mozliwosci narysowania go... Jak bede mial swoj komputer to Ci przesle o ile tego nie rozwiazesz :)

    Chyba ze ty narysuj jak to zrozumiales i wrzuc screena to ja Ci jakos w paint popraiwe jak bedzie potrzeba :)

    Pozdrawiam
  • Poziom 24  
    Nie wiem czy czytałeś to, co pisałem i czy obejrzałeś ten schemacik, który zamieściłem? Jest tam fotorezystorem szeregowo z rezystorem ograniczającym oraz rezystor 1Ω, na którym jest mierzony spadek napięcia wiec jest to tak jakby bocznik w amperomierzu. Potem ten spadek napięcia podaje na wzmacniacz operacyjny tak żeby dopasować napięcie do przetwornika A/C, no i na końcu jest dioda zenera 4,7V żeby nie przekroczyć napięcia 5V podawanego na μC. Potem to tak pisałem wcześniej sterowanie programowe i porównywanie wartości napięcia, która jest proporcjonalna do prądu płynącego przez fotorezysto.

    Twojego pomysłu jeszcze nie rozgryzłem, ale wielkie dzięki za odzew i czekam aż będziesz miał swojego kompa, bo może to rozwiązanie będzie lepsze niż moje.

    Dodano po 2 [minuty]:

    PS. Programy pisze w C, dlatego że dobrze znam ten język, bo pisze trochę programy na PC, więc wole już zostać przy C:D
  • Specjalista elektronik
    Możesz mierzyć czas rozładowania kondensatora przez fotoopornik. A w jakim zakresie natężenia światła to ma działać?
  • Poziom 24  
    Chodzi o pomiar przy słabym naświetleniu (podczas zapadania zmroku) wiec od średnie słabego naświetlenia do bardzo słabego.

    Więc chodzi o to, że mam ładować kondensator i mierzyć czas ładowania, potem rozładowywać i znów ładować, a pomiar porównywać z wartością zadaną? Bardzo ciekawe rozwiązane. Tylko nie do końca wiem jak to połączyć, więc jeśli byś mógł narysować jakiś schemat to będę bardzo wdzięczny.
  • Pomocny post
    Specjalista elektronik
    Raczej bym myślał o tym, żeby naładować, a potem odłączyć ładowanie, i parę razy zmierzyć napięcie,
    żeby ocenić, jak szybko maleje - to będzie miara tego, jakie jest oświetlenie. Pomiar napięcia musi być
    przez układ o dużej impedancji - np. wtórnik na wzmacniaczu operacyjnym z FET-ami na wejściu.
    Fotoopornik ma wysoką czułość, ale jest trochę nieliniowy - może trzeba będzie to zmierzyć.
  • Poziom 24  
    Trochę to skomplikowane a ja jestem raczej początkującym elektronikiem... Jeśli chodzi o charakterystykę prądową fotorezystora to w tym zakresie jest wystarczająco liniowa (tak m się wydaje), więc może jednak rzucisz okiem na to, co sam zaproponowałem i ocenisz czy ten układ się nadaje? Chodzi mi o w miarę proste rozwiązanie ale skuteczne.
  • Specjalista elektronik
    A jakie wejścia ma ten µC? Ma jakiś ADC? Jeśli tak, to jaki prąd polaryzacji wejścia, i jaka rozdzielczość?
    Jeśli nie ma ADC, to najprościej będzie zrobić generator na NE555, w którym jeden opornik zastąpi się tym
    fotoopornikiem, a µC będzie zliczał impulsy z generatora - ich częstotliwość będzie zależna os oświetlenia.
  • Poziom 24  
    Tak jak pisałem ma początku jest to ATmega8, a więc posiada przetwornik 10-bit ADC. Prądu polaryzacji jakoś nie mogę się doszukać w nocie, ale myślę, że po zastosowaniu wzmacniacza operacyjnego (tak jak na tym schemacie, co zamieściłem na początku) nie było by problemu z polaryzacją owego portu.
  • Pomocny post
    Specjalista elektronik
    Najprościej to można tak: zasilasz ten fotoopornik przez opornik z napięcia wzorcowego (pewnie jak masz ADC,
    to i masz jego napięcie wzorcowe, i najlepiej właśnie tego użyć), drugi koniec fotoopornika na masę, i mierzysz
    napięcie fotooporniku przy użyciu tego ADC, może poprzez wtórnik na wzmacniaczu operacyjnym, jeśli prąd
    polaryzacji wejścia mógłby być za duży. Może warto dać w.o. przenoszący sygnał od '-' zasilania, np. LM358.

    Zmiany napięcia na fotooporniku - o ile dobrze dobierzesz opornik, przez który będziesz go zasilać - będą
    wystarczająco duże, żeby wzmacnianie tego napięcia było zbędne, zwłaszcza przy 10-bitowym ADC.
  • Poziom 24  
    Oki dzięki za radę i za podsunięcie ciekawych pomysłów. Jako że ten ostatni pomysł jest podobny do mojego to na razie sprawdzę jak to będzie się sprawować. Jak by były jakieś problemy to będę pytał dalej więc nie zamykam tematu.

    Pozdro i dzięki za pomoc.
  • Poziom 24  
    Do pomiaru zastosowałem następującą modyfikację układu wejściowego:

    Programowalny włącznik oświetlenia - jak zrealizować pomiar?

    Zmieniłem w niej wartości kilku rezystorów, oraz dodałem kondensator w pętli sprzężenia zwrotnego wzmacniacza operacyjnego, aby ustabilizować wskazania ze względu na dużą czułość fotorezystora. Zrezygnowałem z 12V zasilania kostki LM358 teraz na jej wyjściu może pojawić się maksymalnie ok. 3,6V, więc zmniejszyłem napięcie odniesienia do 2V. Układ działa poprawnie, choć nie wiem na ile jest liniowy, ale zostaje przy tym rozwiązaniu.
  • Pomocny post
    Specjalista elektronik
    W twoim układzie najpierw uzyskujesz bardzo małe napięcie (przy podanych przez ciebie opornościach tego fotoopornika
    nawet przy 100lux uzyskasz na R2 zaledwie kilkanaście mV), które następnie wzmacniasz; typowy wzmacniacz operacyjny
    ma napięcie niezrównoważenia do kilku mV, co w takim układzie będzie porównywalne z napięciem, które mierzysz.

    Jeśli zależy ci na liniowej zależności napięcia na wyjściu od odwrotności oporności fotoopornika, to są do tego układy, które
    robią to znacznie dokładniej. I nie jest wtedy potrzebny wzmacniacz, który działa przy zerowym napięciu na wejściu - za to
    istotne jest, by zakres napięć, jakie wzmacniacz jest w stanie dawać na wyjściu, był wystarczający. Metoda polega na tym,
    że fotoopornik podłączasz do wejścia '-' wzmacniacza operacyjnego, a na wejście '+' podajesz stałe napięcie z dzielnika.
  • Poziom 24  
    Więc przy takim rozwiązaniu popełniam duży błąd? Pomiar jest bardzo stabilny a wahania są na poziomie 0,3% całego zakresu. Minimalna zmiana napięcia na wejściu, jaka wykrywa μC przy takiej konfiguracji to ok. 2mV.

    Jeśli prawidłowo odczytałem z noty katalogowej układu LM358, to napięcie niezrównoważenia wynosi 2mV.

    Dodano po 16 [minuty]:

    Zależy mi na tym żeby pomiar był proporcjonalny do natężenia prądu płynącego prze fotorezystora. Zaproponowany przez Ciebie układ działa tak, że wzmocnienie jest zależne od rezystancji fotorezystora?
  • Pomocny post
    Specjalista elektronik
    Jeśli napięcie niezrównoważenia jest stałe w czasie, to pomiar będzie stabilny; jeśli jednak to napięcie zmieni się,
    np. na skutek zmiany temperatury otoczenia, to i wynik pomiaru się zmieni - a tego raczej nie chcemy. To, na ile
    może się zmieniać napięcie niezrównoważenia, powinno być w nocie katalogowej wzmacniacza.
    Nie wiem, jak z zależnością tego napięcia niezrównoważenia od napięcia zasilania, ale to można stabilizować.

    Właściwie należałoby wziąć pod uwagę jeszcze jedną sprawę: jak opór fotoopornika zależy od temperatury?
    Ja nawet nie wiem, czy jest z grubsza stały, czy rośnie, czy maleje - masz jakieś dane na ten temat? Jeśli
    by się znacząco zmieniał, to te zmiany mogą okazać się głównym źródłem błędów pomiaru.

    Programowalny włącznik oświetlenia - jak zrealizować pomiar?
    Rozumiem, że chodzi o prąd płynący przy stałym napięciu na fotorezystorze. W takim razie można to zrobić
    tak, jak na tym rysunku. Napięcie na fotooporniku Ux = Uzasilania*R2/(R1+R2); na wyjściu Uwy = Ix*R2,
    gdzie Ix to prąd fotoopornika; jeśli dla fotoopornika Ux=Ix*Rx, to Uwy=Uzasilania*R2*R2/(Rx*(R1+R2)).
  • Poziom 24  
    Tak chodzi o prąd płynący przy stałym napięciu. Ja również nie wiem jak bardzo zależna jest jego rezystancja od temperatury. Jednak po podgrzaniu go lutownica do znacznej temperatury wskazanie spadło trochę, ponad 2% więc nie powinno mieć to większego wpływy na pomiar. Wybierając metodę pomiary prądu sugerowałem się opisem tym opisem:

    http://www.elektroda.net/pomoce/doc/elektronika/elementy%20optoelektroniczne.htm

    oraz następującą charakterystyką:

    Programowalny włącznik oświetlenia - jak zrealizować pomiar?

    Mam jeszcze dwa pytania.
    1. Czy mogę zastosować w pętli sprzężenia zwrotnego kondensator, aby zniwelować wpływ zmian natężenia oświetlenia o dość wysokiej częstotliwości (np. monitor pracujący z częstotliwością 85Hz) na wahania się odczytu?
    2. Na wyjściu wzmacniacza operacyjnego w układzie, jaki zaproponowałeś jest potencjał dodatni względem masy?
  • Specjalista elektronik
    1. Przy słabym oświetleniu sens jest mocno wątpliwy - fotoopornik dość powoli zmienia swój opór przy zmianie oświetlenia,
    i to tym wolniej, im mniejsze jest oświetlenie - prawdopodobnie będzie tłumił sygnał zmienny tak skutecznie, jak kondensator
    (jak miałem doświadczenie na pracowni z fotoopornikiem, to trzeba było czekać nawet minuty - ale to przy bardzo słabym
    oświetleniu - po umieszczeniu fotoopornika w całkowitej ciemności jego opór rośnie liniowo w czasie, około 100kohm/s,
    i może po paru godzinach dochodzi do gigaoma, ale sprawdzenie tego wymaga sporo czasu i cierpliwości).

    2. W ciemności (dla zerowego prądu fotoopornika) napięcie wyjście-masa powinno być 0V, przy oświetleniu dodatnie.

    Jak chcesz mierzyć bardzo słabe oświetlenie, to uwaga na brud - trochę przewodzi, i nie zmierzysz gigaomów.

    Aha, jak nie chcesz przekroczyć mocy 50mW na fotooporniku, to R1 musi być co najmniej 125 omów (przy 5V).
    Ale pewnie użyjesz znacznie większego, skoro fotoopornik ma przy pracy mieć opór od 15 do 150k.
  • Poziom 24  
    Tyle tylko, że to ma być włącznik zmierzchowy, więc nie ma reagować na szybkie bądź chwilowe zmiany natężenia światła. Pomiar ma się odbywać przy zapadającym zmroku, więc nie ma mowy o całkowitym barku oświetlenia. Układ testowałem w pokoju przy zagaszonym świetle a źródłem niewielkiej ilości oświetlenia była lampka skierowana na ścianę. Wszystko było ustawione tak żeby poziom jasności był mniej więcej taki jak przy zapadającym zmroku, a urządzenie bardzo dobrze reagowało na przysłanianie lub odsłanianie czujnika.

    Dodano po 4 [minuty]:

    Dodatkowo w sposób programowy chce ustalić czas zwłoki przed załączeniem oświetlenia nocnego na przynajmniej jedna minutę i to samo w drugą stronę. Będzie to zapobiegało przypadkowemu, chwilowemu załączaniu lub wyłączaniu obwodu.
  • Specjalista elektronik
    Tylko uwaga: jak włączy oświetlenie, to się robi jaśniej - więc wyjdzie, że trzeba wyłączyć. ;)

    Chyba na to można zaradzić tylko programowo: czekać, aż przez dłuższą chwilę będzie odpowiednio ciemno
    (żeby nie zareagowało na duży samochód, który na chwilę przesłoni okno), włączać światło i wtedy mierzyć
    opór, żeby ustalić jakie jest oświetlenie - jak się zrobi ze 2X większe, niż będzie po włączeniu światła, i będzie
    się utrzymywać, to można wyłączyć światło - bo to znaczy, że już bez niego jest całkiem jasno...
  • Poziom 24  
    Tak wiem o tym i chce to rozwiązać programowo. Najlepsze rozwiązani moim zdaniem to ustawić odpowiedni czas zwłoki oraz zmienić granica przy wyłączaniu np. o jakieś, 10-20% więc po załączeniu układ będzie mógł się wyłączyć dopiero jak zrobi się znacznie jaśniej. Wszystkie wartości będzie można ustawić podczas normalnej pracy układu za pomocą klawiatury, więc wyregulowanie nie powinno stanowić problemu.
  • Specjalista elektronik
    Myślę, że trzeba odczytywać napięcie co jakiś czas, i z długiej serii odczytów wybierać to, co występuje najczęściej
    - może starając się wybrać taką wartość, żeby możliwie jak najwięcej odczytów, i była co najmniej połowa, mieściła się
    w granicach +-10% tej wartości... a może wybrać taką wartość, żeby było tyle samo odczytów więcej i mniej od niej?
  • Poziom 24  
    Tą część programu już napisałem i działa to w ten sposób, że układ dokonuje pomiaru, co ok. 0,1s (do takiego zastosowania to wystarczająco często), i porównuje go z wartością zadaną dla włączania oświetlenia (nie mam możliwości wyskalowania, więc podaje w % całego zakresu), następnie przechodzi w tryb mierzenia zadanego czasu zwłoki i jeśli w tym przedziale czasowym nie nastąpi skok powyżej wartości zadanej to załącza obwód. Jeśli choć na chwile wynik pomiaru przekroczy wartość ustaloną to proces zaczyna się od początku. Przy tak napisanym programie konieczne jest zastosowanie kondensatora w pętli sprzężenia zwrotnego, aby na przetwornik ADC nie przedostawały się chwilowe skoki sygnału. Po załączeni się obwodu układ przechodzi do porównywania wyniku pomiaru z granicą ustawiona dla wyłączenia obwodu, która będzie odpowiednio wyższa. Dalsze działanie jest analogiczne jak przy załączaniu. Jest to chyba najprostsze a zarazem skuteczne rozwiązanie tego problemu gdyż nie trzeba pisać skomplikowanego programu, podczas testowania sprawuje się zgodnie z założeniami.
  • Pomocny post
    Specjalista elektronik
    Jak ulicą obok będą jeździć samochody na światłach, to nie doczekasz się, żeby nie było skoku, i nie załączy...
  • Poziom 24  
    Czujnik nie będzie w miejscu bezpośrednio narażonym na oświetlenie przez jadące pojazdy, ale słuszna uwaga. Więc chyba dopisze w programie kod który będzie ignorował krótkotrwałe skoki w natężeniu oświetlenia.
  • Specjalista elektronik
    Może właściwą metodą byłoby wybieranie z kilkusekundowej serii najniższej wartości oświetlenia?
    Wtedy to, że nam jakiś samochód przez parę sekund zaświeci reflektorem w okno, nie spowoduje
    zakłócenia pomiaru, nawet jeśli takie samochody będą jeździć często - byle z przerwami.
  • Poziom 24  
    Tylko, co wtedy z sytuacja, gdy będzie się robiło jasno? Może jednak lepszy jest pomysł żeby odrzucać oba skrajne przypadki występujące tylko przez chwile? Trzeba by się nad tym wszystkim zastanowić i pomyśleć, jakie zakłócenia mogą mieć wpływ na sterowanie i postarać się je wyeliminować. Na pewno może mieć wpływ jadący samochód, który oświetli czujnik, ale również jakiś czynnik, który będzie przypadkowo przesłaniał fotorezystor.
  • Specjalista elektronik
    Można się spodziewać, że przy występowaniu zakłóceń - zarówno typu oświetlenia, jak i zasłonięcia fotorezystora -
    wyniki prawidłowe będą mniej więcej stałe, natomiast zakłócone będą miały duże odchylenia od tej stałej wartości.

    Jeśli interesuje nas odpowiedź na pytanie, czy ta w miarę stała wartość jest mniejsza, czy większa od zadanego
    poziomu, to może wystarczy liczyć, ile mamy odczytów powyżej, a ile poniżej niego, i porównać te ilości? Jeśli
    oświetlenie jest poniżej progu, to wprawdzie przypadkowe oświetlenia fotoopornika dadzą nam sporo odczytów
    powyżej progu, ale większość raczej będzie poniżej - chyba, że tych samochodów jedzie tyle, że oświetlają niemal
    stale, i tylko od czasu do czasu jest krótka przerwa. Podobnie z przypadkowym zasłanianiem - jeśli nie trwa długo.

    Pewniejszym sposobem jest podzielenie całej skali na odcinki, i zliczanie odczytów trafiających w poszczególne
    odcinki - w jeden, a może dwa sąsiednie, będzie znacznie więcej trafień, niż w jakikolwiek inny; można jeszcze
    dla każdego odcinka liczyć średnią wartość odczytów trafiających w ten odcinek - przyda się, jeśli typowy odczyt
    będzie trafiał w granicę odcinków, bo wtedy różnica średnich powinna być mniejsza od długości odcinka.

    Przy słabym oświetlaniu utrudnieniem będzie jeszcze duża bezwładność fotoopornika - jasne oświetlenie, które
    potrwa choćby setną część sekundy, spowoduje spadek oporu, który utrzyma się przez dłuższą chwilę; jeśli
    byśmy chcieli to zrobić porządnie, to można zmierzyć charakterystykę wzrostu oporu (czy zanikania prądu)
    po oświetleniu na chwilę i potem trzymaniu w zupełnej ciemności, i potem odejmować ten prąd od odczytu;
    to można sprowadzić do jednego parametru - o ile opór wzrasta na jednostkę czasu przy braku światła.

    Bardziej precyzyjnie: prąd jest - o ile oświetlenie nie jest bardzo jasne - proporcjonalny do ilości nośników;
    te nośniki zanikają z szybkością proporcjonalną do kwadratu ich ilości (jeśli nie płynie prąd; przepływ prądu
    dodatkowo usuwa nośniki z szybkością proporcjonalną do prądu), a powstają z szybkością proporcjonalną
    do oświetlenia. Do tego rozkład nośników wzdłuż ścieżki może być nierównomierny, i to już ciężko policzyć.
  • Poziom 24  
    Poruszamy tutaj coraz głębsze zagadnienia statystyki jak również zagadnienia, które wymagają odpowiedniego sprzętu lub dostępu do laboratorium. Oczywiście wszystkie zawarte tu informacje i rozważania są bardzo cenne i mogą się przydać za równo mi jak osobom, które będą szukać informacji na temat pomiaru natężenia światła. Bardzo się cieszę, że z pozornie tak niewielkiego problemu wywiązała się taka dyskusja i dziękuje za udzielanie odpowiedzi na moje pytania i pomoc. Nie zapominajmy jednak, że to ma być w miarę prosty projekt (jest to dopiero moje 2 urządzenie z użyciem μC), więc postaram się znaleźć stosunkowo proste rozwiązanie. Może najlepiej napisać funkcję, która będzie ignorowała skoki natężenia światła a czas, jaki może trwać taki skok dobrać eksperymentalnie i umożliwić jego nastawę. Zastosuje takie rozwiązanie i sprawdzę jak się sprawuje.

    Skoro już jesteśmy przy temacie bardzo precyzyjnego pomiaru oraz linearyzacji to może dla bardzo precyzyjnych pomiarów nie ma sensu stosować fotorezystora tylko np. fototranzystor lub inny element optoelektroniczny?