Stap 1: Bouwen & het programma
Met uitzondering van de verordening van de macht is dit in wezen hetzelfde circuit herhaald drie keer, een voor rood, groen en blauw. Drie van van de ATtiny pinnen - PB0, PB1, PB2 - als uitgangen zijn geconfigureerd en worden gebruikt voor het snel inschakelen en uitschakelen een transistor met PWM, die op zijn beurt bochten aan en uit de rode, groene of blauwe LED aan het. (Een RGB LED is eigenlijk gewoon drie LED's gemonteerd in één pakket.) De andere drie zijn pinnen op de ATtiny13 - PB3, PB4 en PB5 - geconfigureerd als input en lopen door de chip analoog / digitaal-converter. Elke pin is gekoppeld aan een potentiometer van 10K die als een spanning divider fungeert, verstrekken van 0 tot 5 volt afhankelijk van of de knop helemaal links of rechts staat. De microcontroller converteert deze spanning op een waarde van 0 tot en met 255, die zij vervolgens gebruikt om te bepalen welk percentage van de tijd de corresponderende pin van de uitgang is ingeschakeld, dus draaien de blauwe knop positie in de helderheid van de blauwe LED's, etc.
Mijn Eagle schematische en board lay-out worden gevoegd, evenals de print-out van de board sporen waarmee ik de PCB etch. Er zijn een paar jumper draden op de top van de Raad van bestuur sinds ik heb nog om te proberen van de ' double-sided etsen. De drie lange draden uit de potten aan de ATtiny staan ook op de top van de Raad van bestuur, hoewel om het ziet er mooier maken, ik zet ze op de achterkant van het bord met behulp van geïsoleerde draad.
De RGB-LED gaat gemonteerd om een heatsink ster, maar van Sparkfun documentatie zegt dat als alle drie de LEDs volledig op, vervolgens extra warmte zinken nodig is. Uitzoeken dat ik zou zeker willen alle drie knoppen opdagen en zie hoe helder van een wit licht dit kan produceren, heb ik besloten om de LED's ster hechten aan een grotere 1" aluminium vierkant (1/8" dik). De LED niet echt verbonden zoveel op zijn plek gehouden door de zes macht draden, hoewel ik plaatsen thermal samenstelling tussen de twee platen, waardoor het ook op zijn plaats.
Van de LM317 krijgen behoorlijk warm evenals--ze zijn elke absorberen rond 2-watt--zodat ik aan-220 heatsinks geschroefd met koelpasta op elk van die ook.
De C-broncode is gevoegd. Aangezien de ATtiny13 slechts twee hardware PWM pinnen heeft, de PWM hier gebeurt "handmatig". Dat wil zeggen, elke keer dat de timer teller registreren overstorten, de interrupt routine gecontroleerd om te zien of is het tijd om de rode, blauwe of groene LED uitschakelen. De chip wordt uitgevoerd met de standaardsnelheid van 9.6 MHz, waardoor de overflow interrupt triggers op 37,5 KHz (9.6 MHz/256), wat betekent dat de snelheid van de PWM alleen 146 Hz (37500/256). Er zijn manieren om te werken dit veel sneller, maar ik zag geen reden om te zijn aangezien 146Hz nog steeds ruim boven Volksgeschiedenis flikkeren fusion drempel is.