Stap 15: De Code
Deze code is niet door mij geschreven maar net iets aangepast past bij dit project.
Speciale dank aan Joshin Arduino spullen over op techhelpblog.com
Code kopiëren vanaf hier
/*
Bijgewerkte Fade RGB LED soepel door 7 kleuren verdwijnt een RGB LED met PWM soepel door 7 verschillende kleuren onderbreken voor 1 seconden op elke kleur. Re-writted code kan niet blokkeren programmeren met behulp van timers. Verbinding maken met een gemeenschappelijke kathode RGB LED met passende weerstanden op elke anode naar uw Arduino Uno; Rode pin 6, Green pin 5, blauw naar pin 3, kathode naar GND. ontwikkelde voor het Arduino Uno door Joshua David - TechHelpBlog.com gelieve te voelen vrij om te passen en deze code gebruiken in uw projecten. Contact met mij op techhelpblog.com en laat me weten hoe je het hebt gebruikt! */
#define GRN_PIN 11 #define RED_PIN 13 #define BLU_PIN 12
byte rood, groen, blauw; byte RED_A = 0; byte GREEN_A = 0; byte BLUE_A = 0; int led_delay = 0; byte colour_count = 1; Tellen van de kleuren uit #define colour_count_max 7 //Set die dit aan het max aantal kleuren gedefinieerd #define colour_delay 4000 //Define de vertraging tussen het wijzigen van de kleuren in ms #define time_at_colour 1000 //Time verblijven op een kleur in ms
Sommige tijdwaarden unsigned long TIME_LED = 0; unsigned long TIME_COLOUR = 0;
Kleuren hier definiëren. #define C1_R 0 #define C1_G 0 #define C1_B 255 //Red #define C2_R 255 #define C2_G 0 #define C2_B 0 //White #define C3_R 255 #define C3_G 255 #define C3_B 255 //Orange #define C4_R 255 #define C4_G 186 #define C4_B 0 //Light blauwe #define C5_R 0 #define C5_G 168 #define C5_B 255 //Purple #define C6_R 255 #define C6_G 0 #define C6_B blauw 255 //Yellow # define C7_R 255 #define C7_G 250 #define C7_B 0
VOID Setup {}
Toewijzen van initiële waarden rood = C1_R; GROEN = C1_G; BLAUW = C1_B; Krijgen de led_delay snelheid led_delay = (colour_delay - time_at_colour) / 255;
analogWrite (GRN_PIN, 0); analogWrite (RED_PIN, 0); analogWrite (BLU_PIN, 0);
}
void loop {}
Rest van uw programma - Vermijd het gebruik van delay(); functie!
if(Millis() - TIME_LED > = led_delay) {TIME_LED = millis();
Voer de LED-functie om te controleren en aanpassen van de waarden van de LED(); }
if(Millis() - TIME_COLOUR > = colour_delay) {TIME_COLOUR = millis();
Voer de kleurverandering functie COLOUR(); }
}
ongeldig LED() {}
Waarden te controleren en aanpassen van "Actieve" waarde als (rood! = RED_A) {if(RED_A > RED) RED_A = RED_A - 1; if(RED_A < RED) RED_A ++;} als (groen! = GREEN_A) {if(GREEN_A > GREEN) GREEN_A = GREEN_A - 1; if(GREEN_A < GREEN) GREEN_A ++;} als (blauwe! = BLUE_A) {if(BLUE_A > BLUE) BLUE_A = BLUE_A - 1; if(BLUE_A < BLUE) BLUE_A ++;}
Gewijzigde waarden toewijzen aan het pwm-uitgangen voor elke kleur geleid analogWrite (RED_PIN, RED_A); analogWrite (GRN_PIN, GREEN_A); analogWrite (BLU_PIN, BLUE_A);
}
ongeldig COLOUR() {}
Verhogen van de kleur met één of teruggaan naar 1 als maxed if(colour_count < colour_count_max) colour_count ++; anders colour_count = 1;
if(colour_count == 1) {rood = C1_R; GROEN = C1_G; BLAUW = C1_B; } else if(colour_count == 2) {rood = C2_R; GROEN = C2_G; BLAUW = C2_B; } else if(colour_count == 3) {rood = C3_R; GROEN = C3_G; BLAUW = C3_B; } else if(colour_count == 4) {rood = C4_R; GROEN = C4_G; BLAUW = C4_B; } else if(colour_count == 5) {rood = C5_R; GROEN = C5_G; BLAUW = C5_B; } else if(colour_count == 6) {rood = C6_R; GROEN = C6_G; BLAUW = C6_B; } else if(colour_count == 7) {rood = C7_R; GROEN = C7_G; BLAUW = C7_B; } }