Spisu treści:
Wideo: Kalibracja jasności LED: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Podczas tworzenia bajkowego światła zdałem sobie sprawę, że wartość PWM jest nieliniowo proporcjonalna do jasności diody LED. Mówiąc prosto, jeśli wartość PWM jest podwójna, jasność nie jest podwójna; szczególnie gdy PWM jest bliskie maksimum, żadna zmiana nie jest dla mnie rozpoznawalna. Pomyślałem, że powinien to być prosty problem z kalibracją! i tak powstał ten projekt! Chodzi o to, aby zmierzyć jasność diody LED za pomocą jakiegoś urządzenia (czujnika jasności lub fotorezystora) i znaleźć korelację między wartością PWM a jasnością. Później, jeśli ustawię jasność na 50%, Arduino obliczy odpowiednią PWM i odpowiednio przyciemni diodę LED.
Dlatego potrzebuję czujnika jasności i diody LED do pomiaru jasności. Za pomocą karty SD zapiszę dane do późniejszego dopasowania. Dopasowanie zostanie wykonane w programie Excel (lub dowolnym innym programie). Wyjście zostanie użyte w kodzie Arduino i to wszystko! Należy to zrobić raz. Wtedy możesz na zawsze używać parametru kalibracji!
Krok 1: Części
1- WEMOS mini D1: Aliexpress 3€
2- TSL 2561 (czujnik jasności): Aliexpress 3€
3- moduł karty SD: Aliexpress 1€
4-LED
5- Rezystor 220 omów
6-przewodowy
całkowity koszt: 8 -10 €
Krok 2: Okablowanie
Nie należy zmieniać przewodów modułu karty SD i czujnika jasności (większość z nich). Dioda powinna być podłączona do pinu PWM.
Krok 3: Kod
Połączyłem trzy kawałki kodów:
Karta SD: użyty przykład > SD > ReadWrite w Arduino IDE
TSL 2561: używany przykład biblioteki Adafruit TSL2561 (sensorapi); znajdziesz to w przykładach, jeśli zainstalujesz bibliotekę (zakładam, że wiesz, jak zainstalować bibliotekę w Arduino IDE).
Zanikanie LED: użyte przykłady > Analogowe > zanikanie
Kod po inicjalizacji modułów przygaśnie diodę i odczyta jasność oraz zapisze ją na karcie SD. w ten sposób zbierzę trochę danych do kalibracji.
Zmieniłem każdy z kodów zgodnie z moimi potrzebami. ostateczny kod w załączeniu.
Sygnał powinien wyglądać jak na załączonym obrazku. Niestety zapomniałem zrobić zdjęcie, więc przedrukowuję je w excelu, aby pokazać, jak powinno być.
UWAGA: używam wemo mini D1 zamiast Arduino. z jakiegoś powodu, którego nie znam, PWM wynosi od 0 do 1023. W Arduino powinno być od 0 do 255. Jeśli chcesz użyć kodu dla arduino, powinieneś o to zadbać (linia 90).
Krok 4: Dopasowywanie i używanie
po zebraniu danych otworzyłem plik w excelu i wykreśliłem dane (patrz zdjęcie). pierwsza kolumna to wartość PWM a druga to luksy (odczyt czujnika, jednostka nie ma większego znaczenia). Dlatego wykreśl luks (oś y) w funkcji PWM (oś x). Jak widać jasność jest liniowo proporcjonalna do wartości PWM. Dopasowałem do niego linię.
Aby dopasować linię, wykonaj następujące czynności:
1- wykreślić dane (wstawić> wykres punktowy) Zakładam, że wiesz jak.
2- kliknij prawym przyciskiem myszy na wykreślonych danych
3- kliknij na linię trendu.
4- (w programie Excel 2013) po prawej stronie wyskakuje panel. Wybierz liniowy. Na dole wybierz "wyświetl równanie na wykresie".
Relacja liniowa różni się od mojego postrzegania. Dlatego uważam, że między moją percepcją a jasnością powinna istnieć logarytmiczna relacja (to najprostszy sposób, jaki przyszło mi do głowy!). Więc wziąłem nachylenie dopasowania. Przechwycenie nie jest ważne, ponieważ zależy od otaczającego zanieczyszczenia światłem! zamiast tego dodałem 1. Ponieważ Log10(0) jest nieskończony. Potrzebuję więc przechwycenia, żeby rozwiązać problem. W moim przypadku równanie wygląda tak:
y = Log10 (0,08 x +1), y to jasność, a x to wartość PWM (0-1023)
Znormalizowałem równanie do wartości maksymalnej. wtedy zakres wyjściowy jest zawsze pomiędzy 0-100. w ten sposób mogę poprosić arduino o określoną jasność względną, nie biorąc pod uwagę maksymalnej jasności bezwzględnej.
y =Dziennik10(0,08 x +1)*100/1,914
Ponieważ w arduino moim wejściem jest względna jasność, muszę ponownie ułożyć równanie na x (PWM):
x = (10^(y*1,914/100) - 1) / 0,08
używając tego równania w kodzie jesteśmy w stanie uzyskać liniową zmianę jasności. Więc pytasz arduino o jasność (y) między 0-100, a arduino oblicza odpowiednią wartość PWM. w ten sposób, jeśli podwoisz jasność, twoja percepcja również będzie taka sama.
jeśli chcesz go użyć w swoim kodzie, lepiej dodaj te wiersze:
jasność=50; // w procentach
PWM = pow(10, jasność*1,914/100)-1)/0,0793;
zapis analogowy(ledpin, PWM);
UWAGA: normalizacja odbywa się dla maksymalnego PWM 1023 (dla Wemos mini D1). Dla Arduino PWM wynosi od 0 do 255. musisz to odpowiednio obliczyć.
UWAGA 2: Dodałem wykres log-liniowy, aby pokazać, w jaki sposób nasza percepcja i wartość PWM są powiązane. nie należy go używać do dopasowania!
Krok 5: Wniosek
kalibracja działa u mnie dobrze. Gdy wartości PWM są duże, widzę różnicę. Wcześniej jak przy dużych wartościach nie widziałem efektu ściemniania. Zasadniczo większość zmian została wykonana w małym zakresie PWM. teraz jest skalibrowany!
każda dioda LED, specjalnie w różnych kolorach, powinna mieć własne parametry kalibracyjne. Jednak skalibrowałem niebieską diodę LED i użyłem parametru dla białej diody LED i wynik był akceptowalny. więc może możesz użyć mojego parametru kalibracji bez zawracania sobie głowy!!
Zalecana:
KALIBRACJA CZUJNIKA PH ARDUINO: 7 kroków
KALIBRACJA CZUJNIKA PH ARDUINO: W tym samouczku będziemy kalibrować czujnik pH EZO firmy Atlas Scientific za pomocą Arduino Uno. TEORIA KALIBRACJI Najważniejszą częścią kalibracji jest obserwowanie odczytów podczas procesu kalibracji. Urządzenie najłatwiej skalibrować w
Kalibracja czujnika wilgotności gleby: 5 kroków
Kalibracja czujnika wilgotności gleby: Na rynku dostępnych jest wiele mierników wilgotności gleby, które pomagają ogrodnikom zdecydować, kiedy podlewać rośliny. Niestety, złapanie garści ziemi i sprawdzenie koloru i tekstury jest tak samo niezawodne, jak wiele z tych gadżetów! Niektóre sondy nawet rejestrują
KALIBRACJA CZUJNIKA Zasolenia ARDUINO: 9 kroków
KALIBRACJA CZUJNIKA ZAsolenia ARDUINO: W tym samouczku będziemy kalibrować czujnik zasolenia/przewodności K1.0 firmy Atlas Scientific za pomocą Arduino Uno. TEORIA KALIBRACJI Najważniejszą częścią kalibracji jest obserwowanie odczytów podczas procesu kalibracji. Najłatwiej
Jak zrobić wagę dziecka za pomocą Arduino Nano, ogniwa obciążnikowego HX-711 i OLED 128X64 -- Kalibracja HX-711: 5 kroków
Jak zrobić wagę dziecka za pomocą Arduino Nano, ogniwa obciążnikowego HX-711 i OLED 128X64 || Kalibracja HX-711: Hello Instructables,Kilka dni temu zostałem ojcem uroczego dziecka?. Kiedy byłem w szpitalu, odkryłem, że waga dziecka jest tak ważna dla monitorowania wzrostu dziecka. Więc mam pomysł ? zrobić z siebie maszynę do wagi dziecka. w tym Instruktażowym
Kalibracja czujnika wilgotności: 7 kroków
Kalibracja czujnika wilgotności: Posiadam 3 czujniki, które mogą mierzyć wilgotność względną powietrza: BME280, SHT21, DHT22. Stwierdzili zdolność pomiaru z dokładnością +/-3% w zakresie od 20 do 80%. Jednak testując w tych samych warunkach dla 3 czujników, uzyskałem 3 różne wyniki. Może o