Skocz do zawartości

Fotorezystor (rozblyski światła)


Frodus

Pomocna odpowiedź

Panowie, pomyślałem aby projekt doposazyc w funkcję sterowania zależnie od oświetlenia. 

Fotorezystor łączę z arduino przez dzielnik napięcia. Poprzez funkcje map zmieniam zakres 0-1023 na 0-100.

Jednak nawet przy jednolitym oświetleniu wartość odczytana skacze pomiędzy np 40 a 46, ale to mniejsza o to, zastanawiam się jak można by napisać kod aby chwilowy rozblysk światła (jadący w nocy samochód, rozblyski piorunow, błysk latarką itd) nie powodowały zadzialania układu. 

 

Po głowie chodzi mi myśl (zakładając że układ miałby wykonać jakąś funkcje gdy poziom oświetlenia będzie >50, aby odczytać wartość natężenia oświetlenia np 100 razy z małymi opóźnieniami rzędu 10ms i wynik dodawać do zmiennej. 

Gdyby warunki pracy były normalne tzn naturalne rozjaśnianie się na dworzu, nasza zmienna powinna mieć wartość > 50000 w innym przypadku mniej niż te 50000.

Czy w dobrym kierunku zmierzam? Czy powinienem to ugryźć z innej strony, w inny sposób? 

 

Link do komentarza
Share on other sites

Mój błąd, piszę na klawiaturze SwiftKey i z rozpędu nie spojrzałem na co mi poprawiło, dlatego błąd o jedno 0.

Te 50 to taka umowna wartość, aby trzymać się liczb całkowitych. Nie wiem jaką konkretnie wartość bym potrzebował, ponieważ jeszcze nie robiłem pomiaru. 

Bardziej skupilem się na kwesti tych rozblyskow 

Link do komentarza
Share on other sites

7 godzin temu, Frodus napisał:

Te 50 to taka umowna wartość, aby trzymać się liczb całkowitych. Nie wiem jaką konkretnie wartość bym potrzebował, ponieważ jeszcze nie robiłem pomiaru. 

Bardziej skupilem się na kwesti tych rozblyskow 

Cześć,

uśrednianie po większej ilości pomiarów to według mnie dobry pomysł.

Pozdrawiam

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

Gość es2
14 godzin temu, Frodus napisał:

zastanawiam się jak można by napisać kod aby chwilowy rozblysk światła (jadący w nocy samochód, rozblyski piorunow, błysk latarką itd) nie powodowały zadzialania układu

Uśrednianie z odrzucaniem skrajnych wartości..

14 godzin temu, Frodus napisał:

wartość odczytana skacze pomiędzy 40 a 46

Duże te skoki w przybliżenie, skoki z ADC masz o 60 (400-460) co daje ok 6%. Jak wygląda napięcie na transoptorze?

Link do komentarza
Share on other sites

Możesz też dodać równolegle do dolnego rezystora, tego na którym mierzysz napięcie, kondensator 10-100nF. On na pewno wyeliminuje szpilki a uprości program bo załatwi uśrednianie napięcia.

Edytowano przez Sabre
Link do komentarza
Share on other sites

Gość es2
15 minut temu, Sabre napisał:

Możesz też dodać równolegle do dolnego rezystora, tego na którym mierzysz napięcie, kondensator 10-100nF. On na pewno wyeliminuje szpilki a uprości program bo załatwi uśrednianie napięcia.

Uśrednianie tak ale jeśli zasilacz szumi, daje zakłócenia, to małe kondensatory nie wiele dadzą.

Link do komentarza
Share on other sites

Gość es2
21 minut temu, Sabre napisał:

Bez przesady, 100nF wystarczy. Wiadomo, że cudów nie zrobi, ale nie wiem czym musiałoby to być zasilone, żeby 100nF nie dało rady. Niech sprawdzi i da znać

Chińskie zasilacze potrafią zdziałać "cuda".  Dopóki nie zobaczy się oscylogramu można wróżyć z fusów. Jest prosta metora aby rozwiązać problem, fotorezystor podłączyć nie do Vcc ale do Vref uC i ustawić wewnętrzne Vref dla ADC.

Edytowano przez es2
Link do komentarza
Share on other sites

Bez przesady, zasilacz zasilaczem, ale każda płytka powinna mieć swój jakiś stabilizator i kondensatory przy nim. Poza tym autor nie napisał co to za projekt i czym jest zasilany, bo może ma zasilanie bateryjne.

Link do komentarza
Share on other sites

Koledzy skupili się na zakłóceniach zasilania czy Vref a ja bym raczej stawiał na rzeczywiste wahania natężenia światła wynikające z tętnień 100Hz w żarówkach. Frodus sprawdź przede wszystkim, czy obserwujesz takie same rozrzuty wieczorem w pokoju przy oświetleniu lampką czy żyrandolem jak i w dzień, gdy masz za oknem Słońce. Przynajmniej będziemy wiedzieć gdzie leży problem. Jakieś filtrowanie wejścia ADC jest potrzebne więc 10nF od pinu analogowego do masy nie zaszkodzi, choć ja jestem zwolennikiem obróbki cyfrowej.

Naprawdę chcemy upraszczać program w którym zamiast jednego pomiaru będzie ich 20? To już jest jakiś problem? A mając bezpośrednie, niefiltrowane wejście można sprawdzić charakter tych zakłóceń, wypisać wyniki, może je nawet wykreślić w Excelu i np. zobaczyć czy są to regularne górki 100Hz czy przypadkowe szumy z zasilacza. Pozwólmy ludziom trochę pogłówkować i czegoś się nauczyć. Skoro człowiek buduje ADC z czujnikiem światła to niech ma szansę poeksperymentować z tym układzikiem choć przez godzinę. A napisanie filtra gdy już wiadomo z czym się walczy też może być fajnym doświadczeniem. W przypadku zakłoceń od sieci AC wystarczy uśredniać za jeden okres czyli przez 10ms. Przykładowe 20 czy 100 wyników sumujesz a potem normalizujesz (dzielisz) przez liczbę wykonanych pomiarów i masz niezłą średnią, którą możesz potem wykorzystać do analizy jasności. To tylko przykład.

BTW: Vref procesora nie może być obciążane prądem - to wysokoimpedancyjne źródło bez buforowania nadające się tylko do używania przez ADC.

  • Lubię! 1
Link do komentarza
Share on other sites

Gość es2
1 godzinę temu, marek1707 napisał:

BTW: Vref procesora nie może być obciążane prądem - to wysokoimpedancyjne źródło bez buforowania nadające się tylko do używania przez ADC.

W dokumentacji AVR można wyczytać jaki prąd można pobrać. Fakt, że nigdy to mnie nie interesowało bo zawsze używałem bufora.

Link do komentarza
Share on other sites

No to "wyczytaj" i napisz tu liczbę wraz z podaniem miejsca gdzie ją znalazłeś. O ile pamiętam w dokumentacji AVR jest tylko jedno zdanie o tym bloku dotyczące obciążalności:

"Note that VREF is a high impedance source, and only a capacitive load should be connected in a system." (rozdział "ADC Voltage Reference")

No, ale może masz lepszą dokumentację albo czytasz bardziej wnikliwie. Zatem: konkretna liczba Mój Drogi Przyjacielu (o kurcze, to jest zaraźliwe..), czy wykręcisz się sianem?

Link do komentarza
Share on other sites

Gość es2
1 godzinę temu, marek1707 napisał:

No to "wyczytaj" i napisz tu liczbę wraz z podaniem miejsca gdzie ją znalazłeś. O ile pamiętam w dokumentacji AVR jest tylko jedno zdanie o tym bloku dotyczące obciążalności:

To jakiś egzamin mojej znajomości AVR?

To,że ktoś nie potrafi znaleźć nie znaczy, ze niej  jest to nigdzie napisane. Nie zajmuję się AVR od dłuższego czasu, jak pamiętam 100uA a jak nie potrafisz znaleźc taj informacji to już nie mój problem.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.