Stap 3: Constante huidige stuurprogramma met behulp van LM317
Dit project is vergelijkbaar met het Project #3 in Dhananjay Gadre de TinyAVR boek. Gadre van een gebruikt een regelmatige 5mm RGB LED, zodat het niet nodig alle transistoren. Ik had een 3W RGB LED, dus ik dacht dat ik zou gebruiken en maken van een veel helderder licht. (Helaas, bij het uitzoeken van dit stuurprogramma, ik geslaagd om burn-out mijn $15 geleid en moest een andere kopen.)
De beste manier om het gebruik van een high-powered LED is om te rijden een vaste stroom door het, in het geval van deze LED is maximaal 350 milliampère voor elke kleur. In mijn eerste instructable, gebruikte ik vier witte 3W LEDs en niet de moeite waardoor een constante huidige stuurprogramma. Ik wist niet hoe en dacht dat het niet nodig was, aangezien deze waren strobe lichten die alleen op voor een paar milliseconden in een tijd waren, en ze werken nog steeds prima jaar later. Het probleem met het gebruik van de normale regeling van de LED van alleen het toevoegen van een weerstand in serie is dat je niet weet het exacte verzet van de weerstand (de meeste zijn plus of min 5%), je weet niet de exacte spanning neerzetten van de LED (meestal plus of minus.2 volt), en u weet uw startende spanning (die zou plus of minus verschillende volt als de batterij van volledig opgeladen tot volledig gedraineerd gaat). Dus de huidige die je pakte een weerstand voor misschien uiteindelijk dubbele wat je verwacht, kan die burn-out een heldere LED na verloop van tijd. (Dit geldt vermoedelijk voor regelmatige 5mm LED's ook, maar als je probeert ze 20 milliampère doorlopen en eindigen met 40, ze lijken te kunnen omgaan met de extra warmte. En zelfs als niet zij kost slechts een paar cent.)
De gemakkelijkste manier die ik vinden kon om een constante-huidige-coureur is het gebruik van een LM317 verstelbare spanningsregelaar. Deze chip probeert altijd om genoeg huidige pomp op de uitgang-pins zodanig 1,25 volt hoger dan de spanning die het ziet op de pin van de aanpassing. Dit wordt vooral gebruikt voor het maken van een variabele spanningsregelaar door het opzetten van een spanning divider rond de vaste 1.25V, maar het kan ook worden gebruikt om een constante recente stuurprogramma door het invoegen van een weerstand over dat 1.25V drop. Bijvoorbeeld met behulp van een 3.9 ohm weerstand, de LM317 uitgangen 320 milliampère (1.25V / 3.9 Ohm =.320 versterkers).
Kunstmatige intelligentie heeft een geweldig instructable die laat zien hoe om dit te doen voor een vaste helderheid. Om de LED te dimmen (en produceren verschillende tinten van rood, groen en blauw), moeten we PWM toevoegen zodat we je de LED snel draaien aan en uit. Met behulp van PWM betekent dat we moeten een transistor tussen de microcontroller en de LM317. De meest gebruikelijke manier om dit te doen is om toe te voegen op de regulator de uitgang Pins, zoals in de eerste schematisch. Maar dat betekent dat de transistor moet kunnen omgaan met 320 milliampère, wat betekent dat het zal waarschijnlijk iets groter (aan-220) en duurder dan kleine signaal transistoren.
In het Project #7 van Simon Monk's 30 projecten Arduino boektoont hij een slimme oplossing voor hetzelfde effect bereiken met een kleine, logic transistor. Hij maakt gebruik van de 2N7000 N-kanaal MOSFET en het hecht aan de pin van de aanpassing, het uitschakelen van die pin (die heeft een hoge impedantie en dus weinig huidige erop) in plaats van de uitgang-Pins. Op deze manier alleen de LM317 moet zitten kundig voor handvat high-power, in plaats van de LM317 plus de PWM-transistor. Ik oorspronkelijk begreep niet hoe dit werkt, maar hij genadig verklaarde via e-mail:
"De meer conventionele schema die u verzonden moet een high power MOSFET om over te schakelen van de reeds gereguleerde huidige. De truc in mijn circuit is dat Igebruik het LM317 zelf als de huidige regulator én de hoog huidige schakelaar. Dit betekent dat ik een erg laag huidige MOSFET kan gebruiken."
Net als in zijn schema, ik ook toegevoegd de weerstanden van 1 K tussen de PWM-pin en van de transistor gate, hoewel ik dacht dat ze waren onnodig met MOSFETs (in tegenstelling tot BJTs). Opnieuw, legde hij uit:
"Terwijl dat geldt over de impedantie van de poort, en het circuit zou waarschijnlijk prima zonder de weerstand, het is over het algemeen beschouwd als goede praktijken te gebruiken van een weerstand van de poort, om deze reden. Er is eigenlijk vrij een belangrijke poort capaciteit, dus wanneer u de poort eerst op te zetten, een kortstondige hoge stroom uit de uitvoer van de Arduino vloeit te 'vullen' de 'gate condensator'. In theorie zou dit genoeg om de schade van de Arduino, vooral als schakelen snel met PWM. Echter in de praktijk uitgangen de kleine weerstand van de draden die leidt tot de poort en de algemene robuustheid van de ATMega betekent dat u meestal weg zonder de weerstand kunt krijgen."
Tot slot merk dat de weerstand die het LM317 gebruikt om de huidige ook moet omgaan met een veel macht (d.w.z. verdrijven veel warmte), die is waarom die zijn de grotere verscheidenheid van 1W. De weerstanden van 1K op de pin van de aanpassing en de controlerende transistor kunnen veel kleiner zijn.