Étape 3: Et maintenant, le code...
Encore un merci tout spécial à Reddit utilisateur ripred3 pour le code ici.Nous avons mis en place un réseau mondial d’entiers à contenir des numéros de NIP.
Nous pouvons ensuite une boucle à travers ces plus facile lors de l’exécution.
Notez que nous utilisons certains des broches analogiques comme sorties binaires
mais nous sauter celui que nous utiliserons pour l’entrée (A0 pour lire le pot).
Les broches nommés qui ne commencent pas avec un « A » sont les broches uniquement numérique.
Nous sautons 0 et 1, car il est fréquent de les laisser libres parce qu’ils sont
la série transmettre et recevoir des épingles sur la puce ATMEGA328 et sont utiles
à utiliser pour le débogage de sortie à un moniteur de série, mais je m’égare :
int led_pins [15] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11} ;
void setup() {}
pinMode (entrée, A0) ; mettre en place la goupille pour lire le potentiomètre
maintenant, il faut mettre en place nos goupilles de LED comme sorties :
int i ;
pour (i = 0; i < 15; i ++) {}
pinMode (led_pins [i], sortie) ;
Valeur par défaut de chaque LED OFF. Cela suppose que les anodes des LEDs sont connectés
pour les broches de sortie (avec une résistance de 330 ohms entre les deux pour la limitation de courant)
et l’autre côté de l’ensemble des LED (la cathode) est reliée à la terre.
digitalWrite (led_pins [i], faible) ;
}
}
void loop() {}
Nous avons créé une variable à l’index dans notre tableau de codes pin. Nous allons il par défaut à 0 (le premier
Sous la direction) et laisser sa gamme vont de 0 à 14 inclusivement (la valeur quinzième dans notre tableau).
int index = 0 ;
Nous devrons également une variable pour nous dire quelle direction nous sommes « rebondir » les LEDs.
Nous commencer par 1 et utilisez -1 pour aller de l’autre sens :
int direction = 1 ;
tandis que (1) {}
int valeur = analogRead(A0) ; obtenir la position de 0 à 1023
Nous allons utiliser cette valeur comme le nombre de millisecondes pour retarder entre avançant vers entre LED.
Il y a 1000 millisecondes dans une seconde donc cela nous donne une bonne gamme de retard de 1/1000 à un
peu plus de 1 seconde.
Mais tout d’abord, il faut allumer la LED « courante » (celui indexé par « index ») :
digitalWrite (led_pins [index], HIGH) ; tourner la LED pin haute, « 1 », + 5v, tous la même chose...
Maintenant de retard pendant un certain temps par rapport au potentiomètre. La fonction de « delay() » attend que le nombre
de millisecondes nous lui donnons avant il renvoie donc cela fonctionne parfaitement :
Delay(value) ;
Éteindre le courant conduit avant d’avancer :
digitalWrite (led_pins [index], faible) ;
On avance notre numéro d’index ainsi de suite la passe suivante nous ne parlons pas de la LED suivante :
direction de += index ;
Nous inspectons notre indice pour voir si nous sommes sur le point de dépasser à chaque extrémité. Si nous avons atteint soit
fin nous multiplierons simplement le sens par -1 chaque fois que nous arrivons à une extrémité ou l’autre et cela
Il basculera de 1 et -1, il se prépare pour la passe suivante :
Si ((index == 0) || (index == 9)) {
direction * = -1 ;
}
}
}
Et là vous l’avez. Vous devriez maintenant être en mesure de contrôler votre mobile LED avec le potentiomètre.