Skocz do zawartości

Fotorezystor (rozblyski światła)


Pomocna odpowiedź

Napisano

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? 

 

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 

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

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?

(edytowany)

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
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ą.

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ć .

Gość es2
(edytowany)
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

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.

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

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?

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.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...