
Vidéo
Schéma du circuit

Code source
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Chenillard K2000 à vitesse réglable
4// ─────────────────────────────────────────
5// Un potentiomètre règle la vitesse de l'effet de LED Knight Rider
6// (va-et-vient). A0 est lu à chaque pas et sa valeur de 0-1023 devient le
7// temps de pause (ms).
8//
9// Broches :
10// D2, D3, D4, D5, D6, D7 -> 6 LED (dans l'ordre)
11// Chaque LED avec une résistance de 330 ohm
12// A0 -> Curseur du potentiomètre
13// (pattes extérieures sur 5V et GND)
14
15int ledPins[] = {2, 3, 4, 5, 6, 7}; // Broches des LED dans l'ordre d'allumage
16int potValue; // Valeur du potentiomètre = pause (ms)
17
18void setup() {
19 // Mettre toutes les broches de LED en sortie
20 for(int i = 0; i < 6; i++) {
21 pinMode(ledPins[i], OUTPUT);
22 }
23}
24
25void loop() {
26 // Aller : de D2 à D7
27 for(int i = 0; i < 6; i++) {
28 potValue = analogRead(A0); // Lire la vitesse (0-1023)
29 digitalWrite(ledPins[i], HIGH);
30 delay(potValue); // Attendre autant de ms que la valeur du potentiomètre
31 digitalWrite(ledPins[i], LOW);
32 }
33
34 // Retour : de D6 à D3. Les LED des extrémités sont sautées pour que le rebond paraisse fluide
35 for(int i = 4; i > 0; i--) {
36 potValue = analogRead(A0);
37 digitalWrite(ledPins[i], HIGH);
38 delay(potValue);
39 digitalWrite(ledPins[i], LOW);
40 }
41}
42FAQ
En quoi ce projet apporte-t-il un enseignement différent des précédents ?▾
Il associe l'entrée analogique (potentiomètre) à une boucle bidirectionnelle : à chaque pas, lorsque la lumière avance ou recule, la valeur du potentiomètre est lue et mise à jour instantanément. C'est le principe de base permettant de modifier le comportement en fonction de la valeur du capteur.
La valeur affichée vacille, comment puis-je la stabiliser ?▾
De légères variations sont normales dans les mesures analogiques. Calculer la moyenne de plusieurs mesures ou diviser la valeur en pas plus grossiers à l'aide de la fonction map() (par exemple, par pas de 10 ms) permet de masquer ces fluctuations.
Puis-je utiliser un autre capteur à la place du potentiomètre ?▾
Oui. Tout capteur fournissant une sortie analogique, comme le LDR, peut être connecté à la même entrée A0 ; par exemple, la lumière peut varier plus rapidement à mesure que l'environnement s'assombrit. Il suffit de réajuster la plage de lecture à l'aide de la fonction map().
Quelle broche analogique dois-je utiliser ?▾
Sur l'Uno, toutes les broches comprises entre A0 et A5 permettent une lecture analogique. Assure-toi que la broche que tu utilises dans ton code correspond bien à celle du circuit ; comme les broches A4 et A5 sont également utilisées pour l'I2C, privilégie la broche A0 si tu envisages d'ajouter un écran ultérieurement.
