Stap 4: Arduino Code
Opmerking: Ik heb niet schrijven deze code zelf, dat het is uit een oude project van mij waar ik leende dit eenvoudige code om van te leren. Ik herinner me niet de originele auteur wel. Maar ik denk dat het uit de Sparkfun starterskit voor het leren gebruiken van RGB LED's.
De bedrading is zodanig dat ik ben met behulp van een common-anode (common ground). U kunt gemakkelijk een common-Kathode setup maar hoeft te wijzigen van de code om te draaien de hoogte- en dieptepunten. De arduino de anoden zinkt naar de gronden en controleert elke individuele RGB-kanaal met behulp van PWM pinnen (digitaal) 9, 10, 11. Het maakt niet uit in welke volgorde. Ik gebruikte een 100 ohm weerstand (1/2 W) vóór elke LED. Ik hield niet van hoe dim het was met een hogere waarde, en aangezien elke LED is alleen op voor een korte periode van tijd is het niet te groot een deal. Ik weet dat is niet de juiste waarde wilt gebruiken, maar het schijnt te werken het beste.
Opgemerkt moet worden dat het maakt niet uit welke pin u verbinden met welke RGB-pin. Ik bedoel je kunt verbinden met groen blauw en rood voor rood en blauw naar groen en het zal nog steeds werk (of een combinatie). Daarbij zal zij alles wijzigen welke kleuren worden weergegeven op welk punt in de tijd, zoals de code zal doorlopen elke combinatie anyway.
Anyway, hier is de arduino code hieronder:
int rood = 9; Rode pin van de LED PWM pin 9
int groen = 10; GROENE pin van de LED PWM pin 10
int blauw = 11; BLAUWE pins van de LED PWM PIN 11
int DELAY_TIME = 10; snelheid van de veranderingen van fading
int MAX_BRIGHT = 255; maximale helderheid, 255 max helderheid ingesteld
int COLOR_MIX = 0; variabele te wijzigen van de kleuren die worden gemengd in de instructie switch
VOID fade_in(int x) //loop die geleidelijk de LED wordt ingeschakeld met behulp van PWM
{
int de teller;
voor (counter = 0; bestrijding < x; teller ++)
{
led_mixer (COLOR_MIX, teller);
delay(DELAY_TIME);
}
}
VOID fade_out(int x) //loop die geleidelijk de LED wordt uitgeschakeld met behulp van PWM
{
int de teller;
voor (counter = x, de teller > 0; de teller--)
{
led_mixer (COLOR_MIX, teller);
delay(DELAY_TIME);
}
}
VOID led_mixer (int kleur, int x) //uses schakelaarverklaring te mengen kleurencombinaties
{
switch(Color)
{
Case 0:
analogWrite (rode, x);
breken;
Case 1:
analogWrite (groen, x);
breken;
Case 2:
analogWrite (blauw, x);
breken;
Case 3:
analogWrite (blauw, x);
analogWrite (groen, x);
breken;
Case 4:
analogWrite (rode, x);
analogWrite (blauw, x);
breken;
Case 5:
analogWrite (rode, x);
analogWrite (groen, x);
breken;
standaard:
analogWrite (groen, x);
analogWrite (blauw, x);
analogWrite (rode, x);
breken;
}
}
VOID Setup
{
niets voor setup
}
void loop //loop forever
{
fade_in(MAX_BRIGHT); geleidelijk inschakelen de LED op max helderheid
fade_out(MAX_BRIGHT); geleidelijk aan de LED uitschakelen
COLOR_MIX ++; _ / / verhogen de volgende kleur combinatie
if(COLOR_MIX == 7) //if alle kleurencombinaties zijn tentoongesteld, reset de cyclus
{
COLOR_MIX = 0;
}
}