Rozkręcaj z LLotharem: Arduino, detektor migotania światła

 

Powiem szczerze, że nie wiedziałem jak nazwać tą kolejną weekendową konstrukcję. Ostatecznie nazwałem to “detektor migotania światła”; wersję “oscyloskop optyczny” uznałem za zbyt techniczną i mało zachęcającą, acz całość jednak pozostaje dość mocno techniczna.

Urządzenie to wizualizuje jak wygląda poziom otaczającego nas światła.  Wyświetlacz pokazuje jak zmienił się poziom naświetlenia w ciągu ostatnich 16 -17 milisekund, czyli 1/60 sekundy. W tym czasie pobieranych jest 128 próbek – czyli pomiar wykonywany jest co 125 mikrosekund. Można powiedzieć, że jest to jednopikselowy film w około 8000 klatkach na sekundę. Dla porównania: standard kinowy to 24 klatki na sekundę, YouTube to zazwyczaj 30 klatek na sekundę a najnowszy iPhone może kręcić filmy “slow motion” w 240 klatkach na sekundę. Tak więc moje próbkowanie jest zdecydowanie szybsze niż sprzęt jaki można znaleźć w domu.

20150315_102842 (1)
Fotorezystor od chińczyka.

Konstrukcja takiego detektora jest bardzo prosta. Wykorzystałem ekran OLED, taki sam jak w poprzednim odcinku. 128×64 i tutaj będzie wystarczające.

Moim elektronicznym okiem będzie zwykły fotorezystor, który się do tego teoretycznie nie nadaje. Kupiłem 20 takich za 5zł 48 gr. Datasheet pokazuje, że jego czas reakcji to 30ms, więc jest teoretycznie zdecydowanie zbyt wolny. W praktyce jednak okazuje się, że działa idealnie – może nie osiąga wartości docelowych, ale efekty pokazują, że jest dobrze.

20150315_093516
Tak wygląda migotanie świetlówki.

Powyżej wizualizacja migotania świetlówki. Cała szerokość ekranu to 66Hz.  Na ekranie widać, że poziom jasności spada, potem rośnie, a potem znów spada – to wszystko w 1/66 sekundy. To oznacza, że tym czasie świetlówka zapala się dwa razy – widać mniej więcej półtora cyklu, co idealnie przelicza się na 100Hz. Jest to związane z tym, że w gniazdku mam prąd zmienny o częstotliwości 50Hz, czyli 50 razy na sekundę mam najpierw +325V a potem – 325V (230V to wartość skuteczna, RMS, nieistotny, techniczny detal). Mocno upraszczając, lampa przerabia wszystkie dołki na górki, więc zapala się i gaśnie 100 razy na sekundę, bo pedantycznie mówiąc 100 razy na sekundę w gniazdku prądu nie ma.

20150315_094332
Migotanie diody przy ściemniaczu światła.

Dioda ściemniacza światła daje mi bardzo ładny wykres. Także zasilana z sieci 230V 50Hz, więc częstotliwość jest identyczna jak w przypadku świetlówki.

20150315_100300
Ekran laptopa przy niskiej jasności ekranu.

Testowałem też ekran laptopa. Potwierdziły się moje przypuszczania, że różne jasności ekranu uzyskiwane są za pomocą modulacji szerokości impulsu, czyli PWM. Polega to na tym, że ekran zapala się i gaśnie, w moim przypadku 300 razy na sekundę. Różny poziom jasności uzyskuje się poprzez regulację proporcji pomiędzy czasem kiedy jest zapalony a kiedy jest zgaszony. Na zdjęciu powyżej jest wykres, kiedy ustawiłem niską jasność ekranu.

Poniżej widać skanowanie przy prawie maksymalnej jasności – wysoki poziom jasności jest praktycznie zawsze, a gaśnie tylko na chwilę. Elektronicznie zdecydowanie łatwiej podświetlenie bardzo szybko wyłączać i włączać niż regulować poziom napięcia, aby uzyskać ten sam efekt światłem ciągłym. Dodatkowo niektóre źródła światła nie lubią stanów pośrednich.

20150315_100311
Ekran laptopa dla wysokiej jasności ekranu.

Testowałem też sam ekran OLED użyty w projekcie – zapala się na bardzo, bardzo krótko.

20150315_093544
Używany ekran OLED.

Na koniec testowałem różne telefony komórkowe. Większość zachowywała się bardzo ładnie, bez migotania. Niestety Galaxy Note 4 zachowuje się już  nie tak przyjemnie, na co narzeka wiele osób na XDA. 240Hz.

20150315_093602
Ekran Galaxy Note 4

Na deser dwa ujęcia z budowy detektora. Początkowo chciałem użyć LEDa jako detektora światła. Wiele osób nie zdaje sobie sprawy z tego, że gdy na LEDa pada światło, wytwarzane jest napięcie. Dioda zasadniczo może wykorzystać częstotliwości światła takie, jakie sama generuje oraz wyższe – dlatego chciałem użyć diody czerwonej, jako że czerwony znajduje się na samym początku widzialnego spektrum. Niestety, o ile bardzo fajnie to działa przy mocnym świetle, to sygnał przy słabszym oświetleniu jest po prostu zbyt słaby dla mojego Arduino i ginie w szumach. Rozważałem zbudowanie prostego wzmacniacza, ale wcześniej okazało się, że fotorezystor działa bardzo dobrze tak więc pomysł ten zarzuciłem.

Najciekawszym jednak pytaniem jest to, czy taki wytwarzający prąd LED może zasilić innego LEDa? Okazuje się, że tak! Połączyłem ze sobą dwie diody, jedną wystawiłem na ostre słońce, a drugiej robiłem zdjęcie. Zaskakujący efekt poniżej. Światła może nie ma dużo, ale jest.

ledonoff
Dioda LED zasilana diodą LED. Z lewej nie świeci, z prawej lekko świeci.

 

Kod źródłowy dostępny dla chętnych tutaj.

Zapraszam do dyskusji na Forum.

-->

Jeden komentarz do "Rozkręcaj z LLotharem: Arduino, detektor migotania światła"

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

 pozostało znaków