Liten färg Mixer - en konstant ström, 3W RGB LED med indikator för låg batterinivå och polymorph diffuser (3 / 5 steg)
Steg 3: Konstant aktuella drivrutinen använder LM317
Detta projekt är liknande projekt #3 i Dhananjay Gadre TinyAVR bok. Gadres en använder en vanlig 5mm RGB LED, så det inte kräver några transistorer. Jag hade en 3W RGB LED, så jag tänkte att jag skulle använda den och göra en mycket ljusare ljus. (Tyvärr, håller på att räkna ut drivrutinen, lyckades jag bränna ut min $15 ledde och behövs för att köpa en.)
Det bästa sättet att använda en motorstarka LED är att köra en fast strömmen genom den, som i fallet med denna LED är upp till 350 milliampere för varje färg. I mitt första instructable, jag använde fyra 3W vita lysdioder och brydde mig inte att göra en ständigt aktuell drivrutin. Jag visste inte hur och tänkte att det inte var nödvändigt eftersom dessa var strobe lampor som var bara på några millisekunder i taget, och de fungerar fortfarande bra år senare. Problemet med krypteringsschemat normala LED av bara lägga ett motstånd i serie är att du inte vet det exakta motståndet av motståndet (de flesta är plus eller minus 5%), du vet inte den exakta spänningen släppa LED (vanligtvis plus eller minus 2. volt), och du inte vet din start spänning (som kan vara plus eller minus flera volt batteriet går från fulladdat till helt dränerad). Så den nuvarande du plockat en resistor för kan hamna dubbel vad du förväntas, som kan bränna ut en bright LED över tiden. (Detta är förmodligen sant för vanliga 5mm lysdioder för, men om du försöker att köra 20 milliampere genom dem och i slutändan kör 40, de verkar kunna hantera den extra värmen. Och även om inte, de bara kostar ett par cent.)
Det enklaste sättet jag kunde hitta för att göra en konstant-ström föraren är att använda en justerbar LM317 spänningsregulator. Detta chip försöker alltid att pumpa tillräckligt aktuella på dess utgång pin för att vara 1,25 volt högre än den spänning man ser på dess justering stift. Detta används främst för att göra en variabel spänningsregulator genom att inrätta en spänningsavdelare runt den fasta 1.25V, men det kan också användas för att göra en ständigt aktuell drivrutin genom att infoga ett motstånd över det 1.25V drop. Till exempel genom att använda ett 3.9 ohm motstånd, LM317 utgångar 320 milliampere (1.25V / 3.9 ohm =.320 ampere).
Artificiell intelligens har en fantastisk instructable som visar hur man gör detta för en fast ljusstyrka. För att dämpa LED (och producera olika nyanser av röd, grön och blå), måste vi lägga till PWM så vi snabbt vrida lampan på och av. Använda PWM betyder behöver vi en transistor mellan mikrokontroller och LM317. Det vanligaste sättet att göra detta är att lägga till en på tillsynsmyndighetens utgångsstiftet, som visas i först schematiska. Men det betyder transistorn måste kunna hantera 320 milliampere, vilket innebär att det sannolikt något större (TO-220) och dyrare än liten signal transistorer.
I projektet #7 av Simon Monks 30 Arduino projekt bokvisar han en Smart lösning för att uppnå samma effekt med en liten, logik-nivå transistor. Han använder 2N7000 N-kanal MOSFET och bifogas till justering stift, stänga av det klämmer fast (som har en hög impedans och således mycket lite ström på det) istället för utgångsstiftet. Detta sätt endast LM317 behöver för att kunna hantera hög effekt, snarare än LM317 plus PWM transistorn. Jag ursprungligen förstod inte hur detta fungerar, men förklarade han nådigt via e-post:
"Den mer konventionella schematiska du skickat behöver en hög effekt MOSFET växla redan reglerade strömmen. Trick i min krets är att jag använder LM317 sig själv som både den nuvarande regulatorn och hög aktuella växeln. Detta innebär att jag kan använda en riktigt lågt nuvarande MOSFET."
Som i sin schematiska la jag även 1 K motstånden mellan PWM stift och transistorns gate, även om jag trodde de var onödiga med MOSFETs (i motsats till Switch). Igen, han förklarade:
"Det är sant om gate impedans, och kretsen skulle förmodligen vara bra utan motståndet, det anses allmänt god praxis att använda en gate resistor, av denna anledning. Det är faktiskt ganska en betydande gate kapacitans, så när du först slår grinden på, en tillfällig hög ström flödar ur Arduino produktionen att "fylla" "gate kondensatorn". I teorin, kan detta vara tillräckligt för att skada Arduino, särskilt om byter snabbt med PWM. Dock i praktiken utgångar små motståndet av trådarna leder till grinden och allmänna robustheten i ATMega innebär att du kan oftast få bort utan resistorn."
Slutligen konstaterar att motståndet LM317 används för att ange aktuellt måste också hantera en hel del makt (dvs försvinna mycket värme), vilket är varför de är större 1W sorten. 1K motstånden på justering stiftet och kontrollerande transistorn kan vara mycket mindre.