Close

Tutoriel Arduino – Projet débutant chenillard LED.

ardui_cheni

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:

Et tout ça en s’amusant.

Comment réaliser le chenillard

illu

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.

01 02 03 04

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…

chenillard

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.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.