Ces 4 projets en Arduino simples vous permettront de bien vous lancer en électronique et en informatique embarquée. Les 4 projets sont simples et vous donneront les idées autres que celle que nous avons abordées jusqu’ici, car c’est la pratique qui sera mis en avant plan. Cette formation sur Arduino devient donc plus pratique peu à peu et j’en suis sûr, vous devenz à petit feu chevroné dans ce domaine.
Projets simples avec Arduino
Tout comme dans ma précédente formation sur l’électronique où j’ai fait un premier article sur la pratique , ceci est aussi un article similaire pour vous permettre de vous plonger en Arduino , cette fois pratiquement. Les projets qui seront données sont simples et vous permettront d’avoir des nouvelles connaissances, cette fois en pratique comme dit précédemment.
Projet 1 : Les feux de circulation

C’est simple et tout le monde peut facilement mettre en place de système qui se trouve en ville pour coordonner la circulation routiere. Cet exercice vous permettra de mettre en pratique l’utilisation des variables que nous avons abordé précedement.
Le but de ce projet est de créer deux feux de signalisation et de les faire fonctionner de maniere synchrone comme sur cette image :

Enfin, nous utiliserons deux variables temps_1 et temps_2pour définir les temps d’allumages. Avant de regarder
le code ci-bas, essaie d’imaginer l’exercice seul.
Code : feux de circulation
// On définit les variables pour chaque broche
//FEU 1
const int R1 = 4; //La broche 4 devient le feu rouge 1
const int J1 = 5 ; //La broche 3 devient le feu jaune 1
const int V1 = 6 ; //La broche 2 devient le feu vert 1
//FEU2
const int R2 = 8; //La broche 8 devient le feu rouge 2
const int J2 = 9; //La broche 9 devient le feu jaune 2
const int V2 = 10; //La broche 10 devient le feu vert 2
//TEMPS
int temps_1 = 2000; //Le temps est fixé à 2 secondes
int temps_2 = 6000; //Le temps est fixé à 6 s econdes
void setup() {
//On initialise les sorties
pinMode(R1, OUTPUT);
pinMode(J1, OUTPUT);
pinMode(V1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(J2, OUTPUT);
pinMode(V2, OUTPUT);
}
void loop() {
//Phase 1: R1 et V2 sont allumés, R2, J1 et J2 sont éteint s
digitalWrite(R2, LOW); //R2 éteint
digitalWrite(J1, LOW); //J1 éteint
digitalWrite(J2, LOW); //J2 éteint
digitalWrite(R1, HIGH); //R1 allumé
digitalWrite(V2, HIGH); //V2 allumé
delay(temps_2); //durée: 6'000 millisecondes, s oit 6 secondes
//Phase 2: R1, J1, J2 allumés et V2 éteint
digitalWrite(V2, LOW); //V2 éteint
digitalWrite(J1, HIGH); //J1 allumé
digitalWrite(J2, HIGH); //J2 allumé
delay(temps_1); //durée: 2'000 millisecondes, soit 2 secondes
//Phase 3: R1, J1, J2 éteints et V1 et R2 allumés
digitalWrite(R1, LOW); //R1 éteint
digitalWrite(J1, LOW); //J1 éteint
digitalWrite(J2, LOW); //J2 éteint
digitalWrite(V1, HIGH); //V1 allumé
digitalWrite(R2, HIGH); //R2 allumé
delay(temps_2);
//Phase 4: V1 éteint et J1, J2 et R2 allumés
digitalWrite(V1, LOW); //V1 éteint
digitalWrite(J1, HIGH); //J1 allumé
digitalWrite(J2, HIGH); //J2 allumé
digitalWrite(R2, HIGH); //R2 allumé
delay(temps_1);
}
Connections et Listes de composants

pour les composants de ce feu de signalisation, il faut :
2 LEDs rouges
2 LEDs jaunes ou oranges
2 LEDs vertes
6 résistances de 220 à 470 Ω
- Feu 1:
LED rouge connectée sur la broche 4 et renommée R1
LED jaune connectée sur la broche 5 et renommée J1
LED verte connectée sur la broche 6 et renommée V1
- Feu 2:
LED rouge connectée sur la broche 8 et renommée R2
LED jaune connectée sur la broche 9 et renommée J2
LED verte connectée sur la broche 10 et renommée V2
Projet 2 : Faire cligonter 10 fois une LED
L’exercice est simple et vous permettra de découvrir une notion importante sur les fonctions Arduino.
Le titre est clair, nous allons voir comment faire clignoter une LED 10 fois avec Arduino.

Code : Faire clignoter 10 fois une LED
déclaration des variables , broches,...
byte compteur; //On d éfinit la variable "compteur" avec type byte
const int led1= 13; //On renomme la broche 10 en "led1"
// La fonction setup() est exécutée en premier et une seule fois
// au démarrag e du programme
void setup()
{
pinMode( led1, OUTPUT); // Initialise la broche 13 comme sortie de l'Arduino
Serial.begin(9600); // Ouvre le port série à 9600 bauds
// Exécute le programme entre accolades en partant de zéro et en incrémentant à chaque fois la
valeur de +1: 0+1/2+1/3+1... jusqu’à ce que la variable “ compteur “ soit égale à 9 (plus petit
que 10).
for(compteur=0 ; compteur<10 ; compteur++)
{ // début du programme exécuté 10 fois
digitalWrite(led1, HIGH); // a llume la LED
delay(500); // attend 500ms
digitalWrite(led1, LOW); // éteint la LED
delay(500); // attend 500ms
}
} // fin du programme exécuté 10 fois
void loop() {
} // vide, car program me déjà exécuté dans setup
Dans le code ci-haut, j’ai utilisé aussi les boucles pour facilité mon exercice. Sur ce , je vous invite à lire le précédent article sur le langage Arduino si vous avez des difficultés là dessus.
La ligne suivante signifie :
byte compteur;
/*
permet de créer une variable appelée compteur.
Byte indique le type de la variable, c'est- à- dire le type de données que l'on
pourra stocker dans cette variable. Comme nous l’avons déjà vu, le type byte
permet de stocker des valeurs comprises entre 0 et 255.
*/
La ligne de déclaration de la borne
const int led 1= 13;
/*
permet de créer une constante (une variable)
nommée led1 dans laquelle on stocke la valeur 13
*/
La ligne de la boucle for
for(compteur=0 ; compteur<10 ; compteur++)
/*
sert à faire varier la variable compteur de 0 à 9
(en l'augmentant à chaque fois de 1: c'est ce que fait
l'instruction compteur++) Regardons cette ligne d’un peu
plus pr ès: f or(compteur=0 ; compteur<10 ; compteur++)
*/
La déclaration for est habituellement utilisée pour répéter un bloc d’instructions entourées de parenthèses. On l’utilise souvent avec un compteur incrémentiel, qui permet de terminer une boucle après un certain nombre de fois. La suite, à savoir compteur=0 ; compteur<10 ; compteur++ doit être compris comme suit: «la valeur de la variable compteur est comprise entre 0 et 9 (<10 signifie » plus petit que 10″ ) et ajoute un à la valeur de compteur (c ’est le compteur++) ».
Projet 3 : Réaliser un chenillard 5 LED

Le chenillard est une application simple et intéréssante à faire pour bien assimiller les notions de base en langage Arduino. Cet exercice consistera à allumer une LED durant un temps T2, l’éteindra après un temps T2, allumer une suivante LED durant un temps T3, l’éteindre durant un autre temps T4, …ainsi de suite jusqu’à la nième LED ( tout depend de vous).
Cette manière de faire , ou d’intépréter le fonctionnement ou exécution d’un programme, s’appelle organigramme. Puis loin, pour mieux comprendre cela, on passe par les représentations.
CodeSources chenillard 5 LED Arduino
Voici le programme que vous pouvez mettre en place pour obtenir ce fonctionnement , cité en haut :
// je declare les variables pour mes Leds
const int Led_1 = 2;
const int Led_2 = 3;
const int Led_3 = 4;
const int Led_4 = 5;
const int Led_5 = 6;
void setup()
{
// Je definis les broches en sorties
pinMode(Led_1, OUTPUT);
pinMode(Led_2, OUTPUT);
pinMode(Led_3, OUTPUT);
pinMode(Led_4, OUTPUT);
pinMode(Led_5, OUTPUT);
}
void loop()
{
// le coeur du programme c'est ici
digitalWrite(Led_1, LOW); //allumer Led_1
delay(2500); //attendre 2,5 secondes
digitalWrite(Led_1, HIGH); //on éteint L1
digitalWrite(Led_2, LOW); //on allume Led_2 en même temps que l'on éteint Led_1
delay(1500); //on attend 1,5 seconde
digitalWrite(Led_2, HIGH); //on éteint Led_2 et
digitalWrite(Led_3, LOW); //on allume immédiatement Led_3
delay(4000); // ...
digitalWrite(Led_3, HIGH);
digitalWrite(Led_4, LOW);
delay(2000);
digitalWrite(Led_4, HIGH);
digitalWrite(Led_5, LOW);
delay(6000);
}
Ce code est vraiment trop verbeux ( trop long) pour un type de fonctionnement. Bon, de base , c’est pour débuter. Mais en tout cas cil existe de simples codes pouvant faire la même chose en quelques lignes.
Projet 4 : Commande par Bouton poussoir
Cet exercice est simple : il vous permet de récuperer l’appui d’un bouton poussoir.
Un bouton poussoir est un petit composant électronique qui se comporte de base comme un fil conducteur, dans un cas comme fil sans coupure, dans un autre comme un fil conducteur coupé. C’est donc un élément d’entrée pour obtenir son état ( soit fermé ou ouvert). Pour ceci, on utilise d’une manière un peu plus autre que les leds que nous connections jusqu’ici aux sorties OUTPUT de l’Arduino.
CodeSource : Bouton poussoir avec Arduino
// Declaration des bornes de l'arduino
long portPushButton = 2;
long portLED = 13;
long etatPushButton = 13;
void setup() {
Serial.begin(9600);
// Initialisation
pinMode(portPushButton, INPUT_PULLUP);
pinMode(portLED, OUTPUT);
}
void loop() {
// Corps du programme
etatPushButton = digitalRead(portPushButton);
Serial.println(etatPushButton)
/*
je passe par une condition if
( si on a appuyer on allume la LED, dans l'autre cas elle reste éteinte
*/
if (etatPushButton == HIGH){
digitalWrite(portLED, HIGH);
} else { digitalWrite(portLED, LOW);
}
}
C’est fait ! Vous avez des questions ? ou des suggestions quant à ces projets Arduino simples, laissez moi un message en commentaire, je vous donnerai plus d’informations dans la mesure du possible !
Merci, A la prochaine !
Commenter :