Inhoudsopgave:
Video: LED-helderheid kalibreren: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Terwijl ik een sprookjeslicht aan het maken was, realiseerde ik me dat de PWM-waarde niet-lineair evenredig is met de helderheid van de LED. Simpel gezegd, als de PWM-waarde het dubbele is, is de helderheid niet het dubbele; vooral wanneer PWM dicht bij het maximum is, is elke verandering niet herkenbaar voor mijn ogen. Ik dacht dat het een eenvoudig kalibratieprobleem moest zijn! en zo heb ik dit project gemaakt! Het idee is om de helderheid van een LED te meten met een apparaat (lichtsterktesensor of fotoresistor) en een correlatie te vinden tussen de PWM-waarde en de helderheid. Later, als ik de helderheid instel op 50%, berekent Arduino de bijbehorende PWM en dimt de LED dienovereenkomstig.
Daarom heb ik een lichtsterktesensor en een LED nodig om de helderheid te meten. Met behulp van een SD-kaart zal ik de gegevens opslaan voor een latere aanpassingsprocedure. De aanpassing gebeurt in Excel (of een ander programma). De output wordt gebruikt in Arduino-code, en dat is alles! Het moet een keer gedaan worden. Dan kunt u de kalibratieparameter voor altijd gebruiken!
Stap 1: Onderdelen
1- WEMOS mini D1: Aliexpress 3€
2- TSL 2561 (helderheidssensor): Aliexpress 3€
3- SD-kaartmodule: Aliexpress 1€
4- LED
5- Weerstand 220 ohm
6- draden
totale kosten: 8 -10 €
Stap 2: Bedrading
SD-kaartmodule en lichtsensordraden mogen (de meeste) niet worden gewijzigd. Led moet worden aangesloten op een PWM-pin.
Stap 3: Coderen
Ik heb drie stukjes codes gecombineerd:
SD-kaart: gebruikt voorbeeld >SD > ReadWrite in Arduino IDE
TSL 2561: gebruikt Adafruit TSL2561 Library-voorbeeld (sensorapi); je zult het in voorbeelden vinden, als je de bibliotheek installeert (ik neem aan dat je weet hoe je een bibliotheek in Arduino IDE moet installeren).
LED-fading: gebruikte voorbeelden > Analoog > fading
De code zal, na het initialiseren van de modules, de led dimmen en de helderheid aflezen en opslaan op de SD-kaart. op deze manier zal ik wat gegevens verzamelen voor kalibratie.
Ik veranderde elk van de code volgens mijn behoeften. de definitieve code bijgevoegd.
Het signaal moet eruitzien als de bijgevoegde afbeelding. Helaas ben ik vergeten een foto te maken, dus ik verplaats het in Excel om je te laten zien hoe het zou moeten zijn.
OPMERKING: ik gebruik wemo mini D1 in plaats van Arduino. om de een of andere reden die ik niet weet, ligt de PWM tussen 0 en 1023. In Arduino zou het tussen 0-255 moeten zijn. Als je de code voor arduino wilt gebruiken, moet je ervoor zorgen (regel 90).
Stap 4: Montage en gebruik
na het verzamelen van gegevens, opende ik het bestand in Excel en plotte de gegevens (kijk naar de afbeelding). de eerste kolom is de PWM-waarde en de tweede is lux (uitlezing van de sensor, de eenheid maakt niet veel uit). Plot daarom lux (y-as) versus PWM (x-as). Zoals je kunt zien is de helderheid lineair evenredig met de PWM-waarde. Ik heb er een lijn op aangebracht.
Volg als volgt om een lijn te passen:
1- plot de gegevens (invoegen> scatterplot) ik neem aan dat je weet hoe.
2- klik met de rechtermuisknop op de geplotte gegevens
3- klik op trendlijn.
4- (in Excel 2013) aan de rechterkant verschijnt een paneel. Kies lineair. Kies onderaan voor "vergelijking weergeven op grafiek".
De lineaire relatie is anders dan mijn perceptie. Daarom denk ik dat er een logaritmische relatie moet zijn tussen mijn waarneming en de helderheid (dit is de eenvoudigste manier die in mij opkwam!). Dus ik nam de helling van de pasvorm. Het onderscheppen is niet belangrijk, omdat het afhangt van de omringende lichtvervuiling! in plaats daarvan heb ik 1 toegevoegd. Omdat Log10(0) oneindig is. Dus ik heb een intercept nodig om het probleem op te lossen. In mijn geval ziet de vergelijking er als volgt uit:
y =Log10 (0,08 x +1), y is de helderheid en x is de PWM-waarde (0-1023)
Ik heb de vergelijking genormaliseerd naar de maximale waarde. dan is het uitgangssignaal altijd tussen 0-100. op deze manier kan ik arduino om een bepaalde relatieve helderheid vragen, zonder me zorgen te maken over de maximale absolute helderheid.
y =Log10(0,08 x +1)*100/1,914
Omdat mijn invoer in Arduino de relatieve helderheid is, moet ik de vergelijking voor x (PWM) opnieuw rangschikken:
x = (10^(y*1.914/100) - 1) / 0.08
met behulp van deze vergelijking in de code kunnen we een lineaire helderheidsverandering krijgen. Dus je vraagt arduino om een helderheid (y) tussen 0-100, en arduino berekent de bijbehorende PWM-waarde. op deze manier, als de helderheid verdubbeld is, is je waarneming ook hetzelfde.
als je het in je code wilt gebruiken, kun je beter deze regels toevoegen:
helderheid=50; // in procenten
PWM = pow (10, helderheid*1.914/100)-1)/0.0793;
analoogWrite(ledpin, PWM);
OPMERKING: de normalisatie wordt gedaan voor een maximale PWM van 1023 (voor Wemos mini D1). Voor Arduino ligt PWM tussen 0-255. je moet het dienovereenkomstig berekenen.
OPMERKING 2: Ik heb een log-lineaire plot toegevoegd om te laten zien hoe onze perceptie en PWM-waarde gerelateerd zijn. je moet het niet gebruiken om te passen!
Stap 5: Conclusie
de kalibratie werkt prima voor mij. Wanneer de PWM-waarden groot zijn, kan ik het verschil zien. Vroeger als de grote waarden kon ik het effect van dimmen niet zien. In principe zijn de meeste wijzigingen doorgevoerd in een klein bereik van PWM. nu is het gekalibreerd!
elke LED, speciaal verschillende kleuren, moet zijn eigen kalibratieparameters hebben. Ik heb echter een blauwe LED gekalibreerd en de parameter voor een witte LED gebruikt en het resultaat was acceptabel. dus misschien kun je mijn kalibratieparameter gebruiken zonder jezelf lastig te vallen !!
Aanbevolen:
Game Design in Flick in 5 stappen: 5 stappen
Game-ontwerp in Flick in 5 stappen: Flick is een heel eenvoudige manier om een game te maken, vooral zoiets als een puzzel, visuele roman of avonturengame
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: 3 stappen
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: In deze Instructable gaan we gezichtsdetectie uitvoeren op Raspberry Pi 4 met Shunya O/S met behulp van de Shunyaface-bibliotheek. Shunyaface is een bibliotheek voor gezichtsherkenning/detectie. Het project streeft naar de hoogste detectie- en herkenningssnelheid met
Doe-het-zelfspiegel in eenvoudige stappen (met LED-stripverlichting): 4 stappen
DIY make-upspiegel in eenvoudige stappen (met behulp van LED-stripverlichting): In dit bericht heb ik een doe-het-zelfspiegel gemaakt met behulp van de LED-strips. Het is echt gaaf en je moet ze ook proberen
Tutorial: Load Cell kalibreren en interfacen met Arduino UNO - Ajarnpa
Tutorial: Load Cell kalibreren en interfacen met Arduino UNO: Hallo allemaal, we zullen je een tutorial laten zien: Loadcell of HX711 Balance Module kalibreren en koppelen met Arduino UNO. Beschrijving over HX711 Balance Module: Deze module gebruikt 24 high- precisie A/D-omzetter. Deze chip is ontworpen voor high-pre
Hoe de MQ9-gassensor met Arduino te kalibreren en te gebruiken - Ajarnpa
Hoe de MQ9-gassensor met Arduino te kalibreren en te gebruiken: u kunt deze en andere geweldige tutorials lezen op de officiële website van ElectroPeak. Overzicht In deze tutorial leert u hoe u de MQ9-gassensor met een Arduino-bord kunt kalibreren en gebruiken. gassensor is en hoe het werkt. Kom