Étape 15 : Le Code
Ce code a été écrit ne pas par moi mais juste un peu modifié pour convenir à ce projet.
Merci à Joshin Arduino Stuff plus à techhelpblog.com
Copiez le code d’ici
/*
Mise à jour Fade RGB LED sans À-coup à travers 7 couleurs Fades une LED RGB à l’aide de PWM en douceur par le biais de 7 couleurs différentes, une pause de 1 secondes sur chaque couleur. Re-writted code pour non bloquante programmer à l’aide de minuteurs. Connecter une Cathode commune RGB LED avec résistances appropriés sur chaque anode à votre Arduino Uno ; Rouge à broche 6, vert à la broche 5, bleu à la broche 3, Cathode to Developed GND pour Arduino Uno par Joshua David - TechHelpBlog.com s’il vous plaît sentir libre d’adapter et d’utiliser ce code dans vos projets. Contactez-moi à techhelpblog.com et me faire savoir comment vous avez utilisé ! */
#define GRN_PIN 11 #define RED_PIN 13 #define BLU_PIN 12
octet, RED, GREEN, BLUE ; octet RED_A = 0 ; octet GREEN_A = 0 ; octet BLUE_A = 0 ; int led_delay = 0 ; colour_count octets = 1 ; Compter les couleurs des #define colour_count_max 7 //Set que cela au nombre maximum de couleurs définies #define colour_delay 4000 //Define le retard entre l’évolution des couleurs dans ms #define time_at_colour 1000 //Time pour rester sur une couleur dans la SP
Certaines valeurs de temps unsigned long TIME_LED = 0 ; unsigned long TIME_COLOUR = 0 ;
Définissez les couleurs ici. Bleu #define C1_R #define 0 C1_G 0 #define C1_B 255 //Red #define C2_R #define 255 C2_G #define 0 C2_B 0 //White #define C3_R #define 255 C3_G #define 255 C3_B 255 //Orange #define C4_R #define 255 C4_G 186 #define C4_B 0 //Light #define bleu C5_R #define 0 C5_G 168 #define C5_B 255 //Purple #define C6_R #define 255 C6_G #define 0 C6_B 255 //Yellow # définir C7_R 255 #define C7_G 250 #define C7_B 0
void setup() {}
Affecter des valeurs initiales rouge = C1_R ; VERT = C1_G ; BLEU = C1_B ; Obtenir le led_delay de vitesse led_delay = (colour_delay - time_at_colour) / 255 ;
analogWrite (GRN_PIN, 0) ; analogWrite (RED_PIN, 0) ; analogWrite (BLU_PIN, 0) ;
}
void loop() {}
Reste de votre programme - Évitez d’utiliser delay() ; fonction !
if(Millis() - TIME_LED > = led_delay) {TIME_LED = millis() ;
Exécutez la fonction LED pour vérifier et ajuster les valeurs de LED() ; }
if(Millis() - TIME_COLOUR > = colour_delay) {TIME_COLOUR = millis() ;
Exécutez la fonction de changement de couleur COLOUR() ; }
}
void LED() {}
Vérifier les valeurs et ajustez la valeur « Actif » si (rouge! = RED_A) {if(RED_A > RED) RED_A = RED_A - 1; if(RED_A < RED) RED_A ++;} si (vert! = GREEN_A) {if(GREEN_A > GREEN) GREEN_A = GREEN_A - 1; if(GREEN_A < GREEN) GREEN_A ++;} si (bleu! = BLUE_A) {if(BLUE_A > BLUE) BLUE_A = BLUE_A - 1; if(BLUE_A < BLUE) BLUE_A ++;}
Assigner des valeurs modifiées aux sorties pwm pour chaque couleur led analogWrite (RED_PIN, RED_A) ; analogWrite (GRN_PIN, GREEN_A) ; analogWrite (BLU_PIN, BLUE_A) ;
}
void COLOUR() {}
Incrémenter la couleur par l’un ou de revenir à 1 si maxed if(colour_count < colour_count_max) colour_count ++ ; else colour_count = 1 ;
if(colour_count == 1) {rouge = C1_R ; VERT = C1_G ; BLEU = C1_B ; } else if(colour_count == 2) {rouge = C2_R ; VERT = C2_G ; BLEU = C2_B ; } else if(colour_count == 3) {rouge = C3_R ; VERT = C3_G ; BLEU = C3_B ; } else if(colour_count == 4) {rouge = C4_R ; VERT = C4_G ; BLEU = C4_B ; } else if(colour_count == 5) {rouge = C5_R ; VERT = C5_G ; BLEU = C5_B ; } else if(colour_count == 6) {rouge = C6_R ; VERT = C6_G ; BLEU = C6_B ; } else if(colour_count == 7) {rouge = C7_R ; VERT = C7_G ; BLEU = C7_B ; } }