Skocz do zawartości

Pomiar światła w lx z arudino + fotorezytor 10kOhm


kondi520

Pomocna odpowiedź

Cześć,

Mam następujący problem. Mianowicie mam napisany program na wyświetlanie wartości natężenia oświetlenia, lecz wartość jest wyświetlana w %. Chciałbym zmodyfikować ten program który już mam w taki sposób, żeby wartość była podawana w luksach i zrobić zakresy pomiarowe dla 2 przypadków. Tak by w dzień słoneczny miernik pokazywał wartość do 100.00lx, a w dzień pochmurny, żeby zakres wynosił 1000lx. Fotorezystor jakiego użyłem to 10kOhm i w tej samej lini podłączyłem do niego rezystor 10kOhm tworząc w ten sposób dzielnik napięcia. Do swojego posta dołączam kod który napisałem. Ma ktoś jakiś pomysł?

1.JPG

Link do komentarza
Share on other sites

Ale pomysł na co? To Ty chcesz zrobić urządzenie, miałeś jakiś plan i co nie wyszło? Z czym jest problem? Z kalibracją? Jak mamy Ci pomóc? Wystaw to na znane warunki, zapamiętaj wyniki (te wprost z ADC a nie po jakichś bzdurnych przeliczeniach na procenty, bo nie ma to żadnego fizycznego odniesienia) i zrób tabelkę: jakie natężenie oświetlenia w luksach odpowiada jakim wynikom z układu. Potem to już prosta matematyka z 5 klasy (rozdział: funkcje liniowe jednej zmiennej). A może nie znasz warunków oświetlenia w miejscu testów? My też nie.

A może wojnę zacznij od przeglądu uzbrojenia i chwili zastanowienia? Jak widzimy potrzebujesz mierzyć wartości zarówno na poziomie 100000 jak i 1000. Jak rozumiem nie chcesz, żeby w tym dolnym zakresie wyniki zmieniały się jak 0, 1000, 2000 tylko może chociaż co do dziesiątek, czyli 990, 1000, 1010 itd. A pomiar wielkości 100000 z rozdzielczością 10 oznacza aż 10000 różnych wyników oczekiwanych z ADC. To zapewnia przetwornik dopiero 14-bitowy. Masz taki? Z tego wbudowanego w procesor Arduino dostaniesz tylko ok. 1000 różnych wartości. A gdzie liniowość samego czujnika - fotorezystor to najgorszy możliwy pomysł. Pomiary światła to poważny problem, bo nasze oko ma ogromny zakres dynamiczny: całkiem nieźle widzimy zarówno poniżej 1 luksa (czyli w świetle Księżyca) jak i przy 100000+ w słoneczny dzień i nawet fabryczne czujniki przeznaczone do tego celu, wyposażone w liniowe fotodiody i 16-bitowe ADC nie pokrywają całej tej rozpiętości w jednym zakresie.

Moim zdaniem najlepsze byłoby tutaj użycie czujnika zamieniającego nateżenie światła na częstotliwość. Dostając taki sygnał to Ty jesteś odpowiedzialny za jego zamianę na wartość liczbową, ale nie musisz za to korzystać z superdokładnego, 20-bitowego ADC a masz zakres dynamiczny rzędu 1:1000000. Wystarczy timer i algorytm pomiaru czasu:

https://botland.com.pl/pl/czujniki-swiatla-i-koloru/1704-czujnik-koloru-przetwornik-swiatlo-czestotliwosc-tsl235r-sparkfun.html

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

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

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.