Innehållsförteckning:
Video: Kalibrering av LED -ljusstyrka: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Medan jag gjorde ett sagoljus insåg jag att PWM-värdet är olinjärt proportionellt mot lysdiodens ljusstyrka. Enkelt sagt, om PWM -värdet är dubbelt så är ljusstyrkan inte dubbel; speciellt när PWM är nära maximalt känns alla förändringar inte igen i mina ögon. Jag tänkte att det borde vara en enkel kalibreringsfråga! och det var så jag gjorde det här projektet! Tanken är att mäta ljusstyrkan på en LED med någon enhet (ljussensor eller fotoresistor) och hitta ett samband mellan PWM -värde och ljusstyrkan. Senare om jag ställer in ljusstyrkan till 50%kommer Arduino att beräkna motsvarande PWM och dämpa lysdioden därefter.
Därför behöver jag en ljussensor och en LED för att mäta ljusstyrkan. Med ett SD -kort kommer jag att spara data för senare montering. Monteringen görs i Excel (eller något annat program). Out put kommer att användas i Arduino -kod, och det är det! Det bör göras en gång. Då kan du använda kalibreringsparametern för alltid!
Steg 1: Delar
1- WEMOS mini D1: Aliexpress 3 €
2- TSL 2561 (Ljussensor): Aliexpress 3 €
3- SD-kortmodul: Aliexpress 1 €
4- LED
5- Motstånd 220 ohm
6- trådar
totalkostnad: 8-10 €
Steg 2: Kabeldragning
SD -kortmodul och ljussensorns ledningar bör inte bytas (de flesta). Led bör anslutas till en PWM -stift.
Steg 3: Kod
Jag kombinerade tre koder:
SD -kort: använt exempel> SD> ReadWrite i Arduino IDE
TSL 2561: använt Adafruit TSL2561 biblioteksexempel (sensorapi); du hittar det i exempel om du installerar biblioteket (jag antar att du vet hur du installerar ett bibliotek i Arduino IDE).
LED -blekning: använda exempel> Analog> blekning
Koden, efter att ha initierat modulerna, kommer att dämpa lysdioden och läsa ljusstyrkan och spara den på SD -kort. på detta sätt kommer jag att samla in lite data för kalibrering.
Jag ändrade var och en av koden enligt mina behov. den slutliga koden bifogad.
Signalen ska se ut som den bifogade bilden. Tyvärr glömde jag att ta ett foto så jag repoterade det i excel för att visa dig hur det ska vara.
OBS: Jag använder wemo mini D1 istället för Arduino. av någon anledning som jag inte vet är PWM mellan 0 och 1023. I Arduino borde det vara mellan 0-255. Om du vill använda koden för arduino bör du ta hand om den (rad 90).
Steg 4: Montering och användning
efter att ha samlat in data öppnade jag filen i excel och plottade data (titta på bilden). den första kolumnen är PWM -värde och den andra är lux (avläsning av sensorn, enheten spelar ingen roll). Plotta därför lux (y-axel) kontra PWM (x-axel). Som du kan se är ljusstyrkan linjärt proportionell mot PWM -värdet. Jag satte en linje på den.
För att passa en rad följer du:
1- plotta upp data (infoga> sprid plot) jag antar att du vet hur.
2- högerklicka på den plottade informationen
3- klicka på trendlinjen.
4- (i excel 2013) på höger sida dyker en panel upp. Välj linjärt. Längst ner väljer du "visa ekvation på diagram".
Den linjära relationen skiljer sig från min uppfattning. Därför tycker jag att det borde finnas ett logaritmiskt förhållande mellan min uppfattning och ljusstyrkan (det här är det enklaste sättet jag tänkte på!). Så jag tog passformens lutning. Interceptet är inte viktigt, eftersom det beror på omgivande ljusföroreningar! istället lade jag till 1. Eftersom Log10 (0) är oändligt. Så jag behöver en avlyssning för att lösa problemet. I mitt fall ser ekvationen ut så här:
y = Log10 (0,08 x +1), y är ljusstyrkan och x är PWM-värdet (0-1023)
Jag normaliserade ekvationen till maxvärdet. då är utgångssignalen alltid mellan 0-100. på detta sätt kan jag be arduino om en viss relativ ljusstyrka, utan att beröra den maximala absoluta ljusstyrkan.
y = Log10 (0,08 x +1)*100/1,914
Eftersom min ingång är den relativa ljusstyrkan i arduino måste jag omordna ekvationen för x (PWM):
x = (10^(y*1.914 / 100) - 1) / 0.08
med denna ekvation i koden kan vi få en linjär ljusstyrka. Så du ber arduino om en ljusstyrka (y) mellan 0-100, och arduino beräknar motsvarande PWM-värde. på detta sätt, om dubbelt så mycket ljusstyrka, är din uppfattning också densamma.
om du vill använda den i din kod är det bättre att lägga till dessa rader:
ljusstyrka = 50; // i procent
PWM = pow (10, ljusstyrka*1,914/100) -1)/0,0793;
analogWrite (ledpin, PWM);
OBS: normaliseringen görs för en maximal PWM på 1023 (för Wemos mini D1). För Arduino är PWM mellan 0-255. du måste beräkna det därefter.
NOTE2: Jag lade till en logglinjär plot för att visa hur vår uppfattning och PWM-värde är relaterade. du ska inte använda den för montering!
Steg 5: Slutsats
kalibreringen fungerar bra för mig. När PWM -värdena är stora kan jag se skillnaden. Förut som de stora värdena kunde jag inte se effekten av dimning. I grund och botten gjordes de flesta ändringarna i ett litet PWM -område. nu är det kalibrerat!
varje LED, speciellt olika färger, bör ha sina egna kalibreringsparametrar. Men jag kalibrerade en blå lysdiod och använde parametern för en vit lysdiod och resultatet var acceptabelt. så kanske du kan använda min kalibreringsparameter utan att störa dig !!
Rekommenderad:
ARDUINO PH SENSOR KALIBRERING: 7 steg
ARDUINO PH -SENSORKALIBRERING: I denna handledning kommer vi att kalibrera Atlas Scientifics EZO pH -sensor med Arduino Uno. KALIBRERINGSTEORI Den viktigaste delen av kalibreringen är att titta på avläsningarna under kalibreringsprocessen. Det är lättast att kalibrera enheten i
ARDUINO ORP SENSOR KALIBRERING: 3 steg
ARDUINO ORP SENSOR CALIBRATION: I denna handledning kommer vi att kalibrera Atlas Scientifics EZO ORP (oxidationsreducerande potential) sensor med Arduino Uno. KALIBRERINGSTEORI Den viktigaste delen av kalibreringen är att titta på avläsningarna under kalibreringsprocessen. Det är lätt
ARDUINO SALINITY SENSOR KALIBRERING: 9 steg
ARDUINO SALINITY SENSOR CALIBRATION: I denna handledning kommer vi att kalibrera Atlas Scientifics EZO salthalt/konduktivitet K1.0 -sensor med Arduino Uno. KALIBRATIONSTEORI Den viktigaste delen av kalibreringen är att titta på avläsningarna under kalibreringsprocessen. Det är lättast att
Hur man gör en babyviktsmaskin med Arduino Nano, HX-711 lastcell och OLED 128X64 -- Kalibrering av HX-711: 5 steg
Hur man gör en babyviktsmaskin med Arduino Nano, HX-711 lastcell och OLED 128X64 || Kalibrering av HX-711: Hej Instructables, För några dagar sedan blev jag pappa till en söt bebis?. När jag var på sjukhus fann jag att barnets vikt är så avgörande för att övervaka barnets tillväxt. Så jag har en idé? att göra en barnviktsmaskin av mig själv. i denna instruerbara jag
6-axlig sensormodul FSP200 Kalibrering och testning: 6 steg
6-axlig sensormodul FSP200 Kalibrering och testning: FSP200 är en 6-axlig tröghetsmätningsenhet som ger kurs- och riktningsutmatning. Den utför en sammansmältning av accelerometer och gyrosensorer för stabil och exakt riktning och riktning. FSP200 är lämplig för användning i robotpr