Étape 4: Arduino programme
ARDUINO BOARD IDE 1.0.3 CODE
Déclarer toutes les variables
int LED1 ; ces variables seront utilisées pour contenir les valeurs PWM led
int LED2 ;
int DEL3 ;
int p0 = 0 ; / * ces variables assignera une variable destinée à recevoir des valeurs PWM et passez-les à leurs axes respectifs * /
int p1 = 1 ;
int p4 = 4 ;
float x ;
/ * Cette variable qui va recevoir l’angle valeur de variable j’ai. Cette valeur est convertie en radians dans la fonction sinus et sera utilisée pour générer les valeurs PWM * /
flotteur r ; ces variables recevra les valeurs PWM calculées par les fonctions de trois sinus
flotteur g ;
flotteur b ;
la routine d’installation s’exécute une fois que lorsque vous appuyez sur reset ;
void setup() {}
initialiser la broche digitales en tant que sortie.
pinMode (p0, sortie) ; configure la broche 0 pour pwm
pinMode (p1, sortie) ; met en place une broche 1 pour pwm
pinMode (p4, sortie) ; configure la broche 4 de pwm
/ * Exécutez un test de diagnostic qui permettra de vérifier que chaque couleur de la LED ne fonctionne.
Allume les LEDs consécutivement avec un délai d’une seconde entre chaque * /
digitalWrite (p0, HIGH) ;
Delay(1000) ;
digitalWrite (p1, HIGH) ;
Delay(1000) ;
digitalWrite (p4, HIGH) ;
Delay(1000) ;
Éteindre les voyants un après l’autre avec un une deleay seconde entre chaque
digitalWrite (p0, faible) ;
Delay(1000) ;
digitalWrite (p1, faible) ;
Delay(1000) ;
digitalWrite (p4, faible) ;
Delay(1000) ;
}
la routine de la boucle s’exécute maintes et maintes fois pour toujours :
void loop() {}
/ * La pour boucle génère une valeur pour une variable i qui correspond à 0 à 360 degrés. J’ai est augmentée de 1 à chaque itération. Il est ensuite converti en radians dans la boucle. Une fois que j’ai atteint 360 il réinitialise à 0. Ceci établit le comportement périodique du sinus amusantes fonctions * /
pour (int i = 0; i < 360; i ++)
{
convertir en une variable point variable qui peut être utilisé avec PI
x=float(i) ;
/ * pour calculer r, g, b la fonction sinus est modifiée pour augmenter amplitute (127 *) pour créer un déphasage (x + 1/2 * PI) et (x + 3/2 * PI) Enfin, l’onde sinusoïdale est déclenché pour chantourner des valeurs négatives en dessous de zéro en ajoutant 1 * /
r=127*(Sin(x/180*pi)+1) ;
g=127*(Sin(x/180*pi+3/2*pi)+1) ;
b=127*(Sin(x/180*pi+0.5*pi)+1) ;
convertir les entiers qui peuvent être assignés à des numéros de PWM LED flotteur r, g, b
LED1 = int(r) ;
LED2 = int(g) ;
LED3 = int ;
écrire des niveaux de LED à p0, p1, p4 (valeurs PWM assigner à LEDs)
analogWrite (p0, LED1) ;
analogWrite (p1, LED2) ;
analogWrite (p4, LED3) ;
Attendez 1/100 de seconde
Delay(100) ;
}}
Dans ce projet qu'un nombre compris entre 0 et 255 est utilisé pour représenter le cycle d’utilisation de 0 à 100 % (luminosité), fonction sinus est utilisée pour la générer. Digispark utilise la fonction sinus pour générer le PWM (modulation de largeur d’impulsions). Nous convertissons les radians de degré pour les cycles de rouges, verts, bleus. Ceci est utilisé pour changer la langue pour l’ordinateur de comprendre. Une petite différence de conseils réguliers de Arduino et la Digispark est que le compilateur de programme vous invite à joindre le Digispark quand il est prêt à télécharger. Si vous le laissez branché, vous obtiendrez une erreur du compilateur.