Stap 4: Moet!... Behouden!... Controle!
Nadat u hebben bedacht wat resistor(s) die u nodig hebt, moet u een manier om te bepalen hoeveel licht elk van de drie elementen produceren. Ik ben met behulp van een Arduino Uno voor deze, en een vrij eenvoudige bedrading setup. Ik route Pin3 naar het groene kathode, pin6 naar de blauwe kathode, pin9 naar de kathode Red en pin11 naar de gemeenschappelijke Anode. Er is een interne 220 ohm weerstand (die is overkill, maar het was wat ik had bij de hand). Hoewel u twee LED's zien kunt, zijn ze parallel zodat het net zou werken, maar ook met een wired.
Ik kan een waarde tussen 0 en 255 doorgeven aan de analogWrite() functie en het zal het verdwijnen van het LED-element naar het gewenste niveau. Als deze regeling vertrouwd lijkt, moet het zoals web-kleuren worden uitgedrukt in decimale notatie met punten die manier. Het enige grote verschil is dat de schalen worden teruggedraaid. Een waarde van "0" te geven aan de LED draait het op met volledige intensiteit, terwijl een waarde van "255" effectief uitgeschakeld volledig. Vanwege de beperkte PWM lijken sommige combinaties te flash of schommelen, maar tal van combinaties werken. Ook omdat de elementen zijn niet geëvenaard voor huidige getrokken als zal het rode element overweldigen de andere twee bij elke zelfs instelling. Deze beperkingen van mijn eenvoudige setup kunnen worden opgelost door het gebruik van een complexer model, zoals die door mpilchfamily in hun instructable 6-knop-RGB-controller
Ik vond een schematische en steekproef code van fritzing.org. Ik aarzel om dit te nemen zoals ik had moeite om te werken zoals gewenst. Het werkt wel. De schrijver van dit artikel lijkt ook te mengen up zijn voorwaarden wanneer de Anode en de kathoden benoemen, maar de polariteit correct toont.
Zoals u hierboven zien kunt, ik trek niet de macht van de andere kant van de Arduino, maar van een andere digitale pin (pin 11), dus een enkele lijn van code moest worden toegevoegd aan de code van de steekproef ertoe brengen om te werken. Gewoon toevoegen. "digitalWrite(11,HIGH);" naar de top van de sectie ongeldig loop en uw korting naar de races. (Ik heb mijn sourcecode opgenomen in de laatste stap)
Ik moet neem een moment om te wijzen op een paar dingen die had me gaan in cirkels. Eerste en meest af, er lijkt niet te worden circuit leidt tot op de grond, dit is in feite niet waar, het verschijnt alleen op die manier. De 4 pin LED wordt gecontroleerd door de intensivering van de PWM-spanning op grond. De Arduino board zelf wordt het pad naar de grond. Zodat u de stroomtoevoer naar de kathode en uit de grond (of niet) de anoden om een bepaalde hoeveelheid licht gekleurd, vandaar dat hoe hoger het nummer de dimmer de LED-element.
Persoonlijk ik was niet gelukkig met enkel willekeurige kleuren, en vond het overvloeien effect helemaal niet wat ik zocht dus ik begon door het verminderen van het bereik van de gerandomiseerde getal en basiswaarde parameters toe te voegen zodat ik had altijd een zekere mate van een van de drie elementen gaan tweaken. Door te kijken naar de seriële monitor die kunt u een idee van de waarden die nodig zijn voor elke combinatie van de kleur. Dit geeft u een plaats om te beginnen op zoek naar wat je nodig hebt voor uw project.