Stap 4: Controller-Software
De software is geschreven in AVR-GCC op windows met behulp van AVR studio, het leent uit andere soortgelijke projecten van de kaars en de wikipedia-voorbeeldcode voor een lineaire feedback shift register.De belangrijkste verschillen zijn dat deze een RGB LED en 3 hardware PWM timers, voor minimum SW overhead gebruikt.
Het idee was dat als de pseudo-willekeurige flikkeren niet natuurlijk uitzien, de CPU voldoende extra ruimte heeft om een complexer model van kaars gedrag.
De RGB LED werd gekozen om verschillende redenen over een enkele kleur LED.
- Het is moeilijk te vinden van oranje / gele LEDs op hoge helderheid
- Meeste firelight is geen constante kleur, als u dicht kijkt een dimmer brand een donkerder, meer rode kleur heeft, en ik wilde proberen na te bootsen die.
- Ik wilde dit project in de toekomst gebruiken voor andere dingen.
Een ander verschil is dat veel van de beschikbare LED-kaarsen flikkeren commercieel de LED aan / uit, en echte kaarsen dat niet doen.
De volledige code is gekoppeld. Ik had geprobeerd om een meer complexe fading tussen kleuren, maar liep uit de tijd te voltooien. Dat is uitgecommentarieerd in de bijgevoegde code
De code begint met het initialiseren van de PWM-registers, en dan doen een snelle zelftest van de LED in de main().
De functie set_rgb() neemt de R, G, B waarden en dienovereenkomstig ingesteld van de PWM-registers.
De hoofdlus vervolgens begint een LFSR en flikkert tussen 2 verschillende kleurwaarden.