Vacker och enkel RGB Origami stjärna rutan (15 / 16 steg)
Steg 15: Koden
Denna kod var inte skriven av mig men bara något modifierad för att passa detta projekt.
Speciellt tack till Joshin Arduino grejer över på techhelpblog.com
Kopiera koden från här
/*
Uppdaterade blekna RGB LED smidigt genom 7 färger bleknar en RGB LED med PWM smidigt via 7 olika färger pausa för 1 sekunder på varje färg. Re-writted koden till icke blockerande program med timers. Ansluta en gemensam katod RGB LED med lämpligt motstånd på varje anod till din Arduino Uno; Red till stift 6, grönt till stift 5, blå till stift 3, katod till GND. utvecklad för Arduino Uno av Joshua David - TechHelpBlog.com Please Feel Free att anpassa och använda denna kod i dina projekt. Kontakta mig på techhelpblog.com och låt mig veta hur du har använt den! */
#define GRN_PIN 11 #define RED_PIN 13 #define BLU_PIN 12
byte röd, grön, blå; byte RED_A = 0; byte GREEN_A = 0; byte BLUE_A = 0; int led_delay = 0; byte colour_count = 1; Räkna färgerna ut #define colour_count_max 7 //Set detta till max antal färger definieras #define colour_delay 4000 //Define fördröjningen mellan ändra färger i ms #define time_at_colour 1000 //Time bo på en färg i ms
Vissa tidsvärden osignerade långa TIME_LED = 0; osignerade långa TIME_COLOUR = 0;
Definiera färger här. Blå #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 blå #define C5_R 0 #define C5_G 168 #define C5_B 255 //Purple #define C6_R 255 #define C6_G 0 #define C6_B 255 //Yellow # definiera C7_R 255 #define C7_G 250 #define C7_B 0
void setup() {
Tilldela startvärdena röd = C1_R; GRÖN = C1_G; BLÅ = C1_B; Få led_delay speed led_delay = (colour_delay - time_at_colour) / 255;
analogWrite (GRN_PIN, 0); analogWrite (RED_PIN, 0); analogWrite (BLU_PIN, 0);
}
void loop() {
Vila i din program - Undvik att använda delay(); funktion!
IF(Millis() - TIME_LED > = led_delay) {TIME_LED = millis();
Kör funktionen LED för att kontrollera och justera värdena LED(); }
IF(Millis() - TIME_COLOUR > = colour_delay) {TIME_COLOUR = millis();
Kör funktionen färgförändring COLOUR(); }
}
void LED() {
Markera värden och justera "Aktiv" värde om (röd! = RED_A) {if(RED_A > RED) RED_A = RED_A - 1; if(RED_A < RED) RED_A ++;} om (grön! = GREEN_A) {if(GREEN_A > GREEN) GREEN_A = GREEN_A - 1; if(GREEN_A < GREEN) GREEN_A ++;} om (blå! = BLUE_A) {if(BLUE_A > BLUE) BLUE_A = BLUE_A - 1; if(BLUE_A < BLUE) BLUE_A ++;}
Tilldela ändrade värden till de pwm utgångarna för varje färg ledde analogWrite (RED_PIN, RED_A); analogWrite (GRN_PIN, GREEN_A); analogWrite (BLU_PIN, BLUE_A);
}
void COLOUR() {
Ökas färgen med ett eller gå tillbaka till 1 om maxade if(colour_count < colour_count_max) colour_count ++; annat colour_count = 1;
IF(colour_count == 1) {röd = C1_R; GRÖN = C1_G; BLÅ = C1_B; } annat if(colour_count == 2) {röd = C2_R; GRÖN = C2_G; BLÅ = C2_B; } annat if(colour_count == 3) {röd = C3_R; GRÖN = C3_G; BLÅ = C3_B; } annat if(colour_count == 4) {röd = C4_R; GRÖN = C4_G; BLÅ = C4_B; } annat if(colour_count == 5) {röd = C5_R; GRÖN = C5_G; BLÅ = C5_B; } annat if(colour_count == 6) {röd = C6_R; GRÖN = C6_G; BLÅ = C6_B; } annat if(colour_count == 7) {röd = C7_R; GRÖN = C7_G; BLÅ = C7_B; } }