Travail Arduino Erwan Courel et Yassine Squalli Houssaini
Voici un rapport d'ensemble du travail réalisé en duo ( Yassine et Erwan ) sur Arduino.
1- LED qui clignote
Dans ce premier travail, il fallait avec Arduino faire clignoter une LED. Cela était utile pour comprendre le fonctionnement de ce système.
Voici le code utilisé pour que la LED clignote:
void setup() {
pinMode(2,OUTPUT); //Pin 2 en mode sortie
}
void loop() {
digitalWrite(2,HIGH); //On allume la LED
delay(1000); //Délais de 1sec
digitalWrite(2,LOW); // On éteint la LED
delay(1000); //délai de 1sec
}
Dans setup(), on indique que la broche 2 est une sortie (OUTPUT) : Arduino pourra y envoyer du courant.
La fonction loop() permet une boucle infinie
delay(1000) permet d'attendre 1 seconde
La LED s'allume pendant une seconde et s'éteint une seconde
Voici le montage associé:
Vidéo présentant le résultat:
2- Trois LED qui clignotent à des fréquences différentes
Après avoir compris le principe du système Arduino, il faalait maintenant faire clignoter trois LED à des fréquences différentes.
Voici le programme utilisé:
//Définition des pins des LEDS
int led_bleu = 2;
int led_jaune = 4;
int led_verte = 7;
//Définition des variables de temps précendents pour chaque LED
unsigned long preced_bleu = 0;
unsigned long preced_jaune = 0;
unsigned long preced_verte = 0;
// Intervalles en millisecondes
const long dureeAllumage = 1000; // Les led restent allumées 1s
const long periode_bleu = 3000; // S'allume toutes les 3s
const long periode_jaune = 5000; // S'allume toutes les 5s
const long periode_verte = 7000; // S'allume toutes les 7s
//Variable pour le temps actuelle
unsigned long actu;
void setup() {
pinMode(2,OUTPUT);
pinMode(4,OUTPUT);
pinMode(7,OUTPUT);
}
void loop() {
actu = millis();
//Gestion LED bleu
if (actu - preced_bleu >= periode_bleu) {
preced_bleu = actu;
}
if (actu - preced_bleu < dureeAllumage) {
digitalWrite(led_bleu, HIGH);
} else {
digitalWrite(led_bleu, LOW);
}
//Gestion LED jaune
if (actu - preced_jaune >= periode_jaune) {
preced_jaune = actu;
}
if (actu - preced_jaune < dureeAllumage) {
digitalWrite(led_jaune, HIGH);
} else {
digitalWrite(led_jaune, LOW);
}
//Gestion LED verte
if (actu - preced_verte >= periode_verte) {
preced_verte = actu;
}
if (actu - preced_verte < dureeAllumage) {
digitalWrite(led_verte, HIGH);
} else {
digitalWrite(led_verte, LOW);
}
}
Avec ce programme on peut faire clignoter les LED de façon indépendante.
Les LED (bleue, jaune, verte) sot branchées sur une broche différente.
bleue : toutes les 3 secondes
jaune : toutes les 5 secondes
verte : toutes les 7 secondes
millis() donne le temps écoulé depuis le démarrage de l’Arduino en millisecondes.
Les trois LED peuvent clignoter de manière indépendante.
Voici le montage associé:
Voici une vidéo présentant le travail:
3- LED avec capteur
L'objectif était à partir d'un capteur de distance de éteindre une LED lorsque le capteur détecte un signal, le reste du temps la LED est allumée.
Voici le programme utilisé:
void setup() {
Serial.begin(9600); //Inialisaiton de la console pour lire
pinMode(12,INPUT); //Entrée du capteur
pinMode(13,OUTPUT); //Sortie qui allumera la LED
}
void loop() {
delay(1000); //Pause chaque seconde pour la détection
if(digitalRead(12)==LOW) { //Quand c'est 0 c'est qu'on détecte
Serial.println("Objet in range");
digitalWrite(13,LOW); // On allume la LED
}
else {
Serial.println("Objet out of range"); //Détection d'un objet sinon
digitalWrite(13,HIGH); //On allume
}
}
Dans setup(), on initialise (Serial.begin(9600)) pour afficher des messages sur l’ordinateur, on définit la broche 12 en entrée (capteur) et la broche 13 en sortie (LED).
Dans loop(), le programme attend 1 seconde (delay(1000)), puis lit l’état du capteur avec (digitalRead(12).
Si la valeur est LOW, cela signifie qu’un objet est détecté : le message "Objet in range" est affiché et la LED s’allume.
Sinon, aucun objet n’est détecté : le message "Objet out of range" s’affiche et la LED s’éteint.
Voici une photo du montage:
Voici une vidéo du résultat:



No Comments