Stap 6: NerdClock - de Arduino Software
Een vriend van mij heeft het merendeel van het werk van de geweldige software om deze klok werkt perfect. Een van de coolste dingen is dat hij de code eenvoudig uitbreidbaar met code die kunt u zelf de klok misschien om te doen dingen die je wilt om te doen. Ik schoongemaakt de software een beetje voor comfortabeler lezen. Ook vindt u hier alle uitleg in de code.
U kunt...
- ... handmatig aanpassen van de nauwkeurigheid van de klok door het veranderen van de timeDivider
- ... toevoegen meer kleuren om te laten de fader van de kleur vervagen door middel van door verhoging van de colorLength en kleuren toevoegen aan de matrix int kleuren [] [3] = {{255 - R1, 255 - 255 - G1, B1}, {255 - R2, 255 - G2, 255 - B2}, {255 - Rn, 255 - Gn, 255 - Bn}}. Standaard zal het soepel door het spectrum van de regenboog vervagen.
- ... de tijd het zit op een volledige kleur door het veranderen van de colorDelay aanpassen
- ... aanpassen hoe snel de fade kan duren
- ... meer kleurmodi (bijvoorbeeld statische groen) toevoegen door verhoging van de ledModesNum en het toevoegen van uw eigen als voorwaarden.
Hier is hoe de routine van de lus ongeveer werkt:
- Controleren voor welke modus LED is op. Vervagen of handmatige potentiometer instellen?
- Controleer of een van de tijd ingesteld dat knoppen wordt gedrukt
- Controleren als de gebruiker heeft besloten te stoppen met de klok door op de desbetreffende knop te drukken
- Controleren als de gebruiker heeft besloten de LED-modus wijzigen door op de desbetreffende knop te drukken
- Controleer als er een tweede heeft doorstaan. Zo ja -> seconden verhogen door een -> herschrijven matrix
Bekende problemen:
Onnauwkeurigheid. De klok wordt de functie millis() gebruikt om de tijd te berekenen en dat is onjuist. De nauwkeurigheid die ik denk dat hangt af van het klokbron en varieert van kristal tot crystal. Mijne is uitgeschakeld door een minuut per etmaal