En fait j’ai été débutant comme vous et que je me considère encore comme tel. Donc j’ai décidé de faire des projets débutant :). Lorsqu’on a besoin d’un code vite-fais, un copier-coller fais l’affaire mais ici, on va apprendre.
Mieux que de simplement faire clignoter une LED, le chenillard va nous aider à maîtriser plusieurs fonctions ou notions comme:
- Maîtriser la boucle “for”
- Utiliser la fonction delay()
Utiliser un potentiomètre- En cours
Et tout ça en s’amusant.
Ce dont vous aurez besoins
Pour ceux qui commande par Amazon, voici un lien pour obtenir 1 mois d’essai gratuit à Amazon Prime et avoir vos livraison en 1 jours gratuite sur des milliers d’articles - Liens Amazon Prime
Comment réaliser le chenillard
Si vous avez le matériel nécessaire pour souder n’hésitez pas a “finaliser” votre projet sur une PCB.
Pour ceux qui n’aurait pas le matériel adéquat une platine d’essais (breadboard) suffit.
Voici ce que j’ai réalisé. Il y a plus sexy niveau soudure mais ca fonctionne parfaitement.
J’ai pour commencé placé et soudé les LEDS ensuite les pins. J’ai relié toute les masses et j’ai terminé par les résistance.
Code Arduino
Voilà un premier code qui n’est pas incorrecte mais qui est fastidieux à écrire.
int led1 = 2; // Déclaration de la variable
int led2 = 3; // Déclaration de la variable
int led3 = 4; // Déclaration de la variable
int led4 = 5; // Déclaration de la variable
int led5 = 6; // Déclaration de la variable
int led6 = 7; // Déclaration de la variable
int led7 = 8; // Déclaration de la variable
int led8 = 9; // Déclaration de la variable
int led9 = 10; // Déclaration de la variable
void setup() {
pinMode(led1,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led2,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led3,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led4,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led5,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led6,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led7,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led8,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led9,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
}
void loop() {
digitalWrite(led1, HIGH);
delay(200);
digitalWrite(led1, LOW);
delay(200);
digitalWrite(led2, HIGH);
delay(200);
digitalWrite(led2, LOW);
delay(200);
digitalWrite(led3, HIGH);
delay(200);
digitalWrite(led3, LOW);
delay(200);
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led4, LOW);
delay(200);
digitalWrite(led5, HIGH);
delay(200);
digitalWrite(led5, LOW);
delay(200);
digitalWrite(led6, HIGH);
delay(200);
digitalWrite(led6, LOW);
delay(200);
digitalWrite(led7, HIGH);
delay(200);
digitalWrite(led7, LOW);
delay(200);
digitalWrite(led8, HIGH);
delay(200);
digitalWrite(led8, LOW);
delay(200);
digitalWrite(led9, HIGH);
delay(200);
digitalWrite(led9, LOW);
delay(200);
}
Qu’y fait-on ?
On déclare les variables:
int led1 = 2; ...
On les défini en tant que sortie dans la fonction setup():
pinMode(led1,OUTPUT);...
et on les allume dans l’ordre dans la fonction loop():
digitalWrite(led1, HIGH);
delay(200);
digitalWrite(led1, LOW);
delay(200);
On avouera qu’on a connu plus simple mais çà fais le job…
Comment le simplifier grâce a la boucle “for”
Commençons a simplifier le code! Donc reprenons, on initialise les pin 2 à 11 de l’Arduino. Sans interruption et dans cet ordre. Une boucle “for” pourrait donc faire l’affaire. Explications et exemple:
void setup() {
for (int i = 2; i<=10; i++){
pinMode(i, OUTPUT);
}
Dans ce code:
int i = 2; - on déclare que i est égal à 2 . Parce que dans notre code on va utilisé les pin 2 à 10 et que l’on commence par celle-là.
i<=10; - Signifie ” Tant que i est inférieur ou égal à 10 “.
i++ - On incrémente de i de 1.
ce code va en fait exécuter ceci:
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
... Toujours en faisant +1
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
Faisons la même chose dans le loop et voici le code complet:
void setup() {
for (int i = 2; i<=10; i++){
pinMode(i, OUTPUT);
}
}
void loop() {
for (int i = 2; i<11; i++){
digitalWrite(i, HIGH);
delay(200);
digitalWrite(i, LOW);
delay(200);
}
}
Ce code est bien plus compacte et fais exactement la même chose.




0 commentaires