Difference between revisions of "Exercice Arduino FCU"

From beeplane
Jump to navigation Jump to search
Line 55: Line 55:
 
Pour pouvoir allumer cette LED, il faudra utiliser le code Arduino suivant.
 
Pour pouvoir allumer cette LED, il faudra utiliser le code Arduino suivant.
  
  void setup() {
+
  void setup()
pinMode(1, OUTPUT); //initialise la borne numérique numéro 1 de la carte Arduino en mode sortie  
+
{
 +
  pinMode(1, OUTPUT); //initialise la borne numérique numéro 1 de la carte Arduino en mode sortie  
 
  }  
 
  }  
  void loop() {  
+
  void loop()  
digitalWrite(1, HIGH); //le courant est envoyé sur la borne 1, la LED s'allume  
+
{  
 +
  digitalWrite(1, HIGH); //le courant est envoyé sur la borne 1, la LED s'allume  
 
  }
 
  }
  
Line 67: Line 69:
 
Ce code Arduino permet de faire clignoter une LED à une fréquence déterminée
 
Ce code Arduino permet de faire clignoter une LED à une fréquence déterminée
  
void setup() {  
+
void setup()  
  pinMode(1, OUTPUT); //Initialisation de la broche 1 en sortie  
+
{  
}  
+
  pinMode(1, OUTPUT); //Initialisation de la broche 1 en sortie  
 +
}  
 
   
 
   
void loop() {  
+
void loop()  
  digitalWrite(1, HIGH); //Mise au niveau Haut (Allumage) de la LED  
+
{  
  delay(1000); //Délai de 1000ms dans cette position (LED allumée)  
+
  digitalWrite(1, HIGH); //Mise au niveau Haut (Allumage) de la LED  
  digitalWrite(1, LOW); //Mise au niveau bas (Eteint) de la LED  
+
  delay(1000); //Délai de 1000ms dans cette position (LED allumée)  
  delay(1000); //Délai de 1000ms dans cette position (LED éteinte)  
+
  digitalWrite(1, LOW); //Mise au niveau bas (Eteint) de la LED  
}
+
  delay(1000); //Délai de 1000ms dans cette position (LED éteinte)  
 +
}
  
 
Vous pouvez retrouver une vidéo explicative sur ce lien : https://www.youtube.com/watch?v=OOR3dfWH8HE
 
Vous pouvez retrouver une vidéo explicative sur ce lien : https://www.youtube.com/watch?v=OOR3dfWH8HE
Line 84: Line 88:
 
Ici le code va faire varier l’intensité lumineuse de la LED, de façon à ce que l’intensité augment linéairement puis lorsque la LED atteint sa valeur maximale (valeur 255, valeur HIGH) puis arrivé a cette valeur, l’intensité lumineuse rediminue jusqu’à ce que la LED soit éteinte (valeur 0, LOW).
 
Ici le code va faire varier l’intensité lumineuse de la LED, de façon à ce que l’intensité augment linéairement puis lorsque la LED atteint sa valeur maximale (valeur 255, valeur HIGH) puis arrivé a cette valeur, l’intensité lumineuse rediminue jusqu’à ce que la LED soit éteinte (valeur 0, LOW).
  
int LED = 3; // Définition des broches et variables utilisées
+
int LED = 3; // Définition des broches et variables utilisées
 +
int x; // Rapport cyclique
  
int x; // Rapport cyclique
+
void setup()  
 
+
{   
void setup() {  
+
  pinMode(LED, OUTPUT);   
   
+
}  
pinMode(LED, OUTPUT);   
 
 
 
}
 
 
    
 
    
void loop() {   
+
void loop()  
 
+
{   
x = 0;   
+
  x = 0;   
 
+
  while (x <= 255) // Allumer progressivement la LED (0 --> 255)
while (x <= 255) { // Allumer progressivement la LED (0 --> 255)  
+
  {
 
+
  analogWrite(LED, x);   
analogWrite(LED, x);   
+
  delay(10);   
 
+
  x = x+1;  
delay(10);   
+
  }   
 
+
  x = 255;  
x = x+1; }   
+
  while (x >= 0) // Eteindre progressivement la LED (255 --> 0)
 
+
  {
x = 255;  
+
  analogWrite(LED, x);   
 
+
  delay(10);   
while (x >= 0) { // Eteindre progressivement la LED (255 --> 0)  
+
  x = x-1;  
 
+
  }  
analogWrite(LED, x);   
+
}
 
 
delay(10);   
 
 
 
x = x-1;  
 
 
 
}  
 
 
 
}
 

Revision as of 14:57, 17 February 2023

Vous trouverez sur cette page toutes les informations, exercies, et fichiers nécessaire à la prise en main et à la réalisation d'un prototype de FCU (Flight Control Unit) dans le cadre de travaux dirigés (TD) à faire en classe

Quelques fonctions Arduino utiles :

Void setup() : obligatoire en début de programme, cela correspond à l’initialisation du programme (indiquer les broches, les sorties, les entrées)

Void loop() : obligatoire dans un programme, cela correspond à la partie du programme qui va se répéter en boucle.

DigitalRead() / AnalogRead() : permet de lire l’état (HIGH ou LOW) d’un port digital/analogique de la carte Arduino.

DigitalWrite() / AnalogWrite() : permet d’écrire et donc de donner un état (HIGH ou LOW) à un port digital/analogique de la carte Arduino.

PinMode() : permet d’initialiser une broche et de la mettre en entrée ou sortie (ex : pinMode(1, OUTPUT) )

Delay() : Fait une pause dans le programme (en ms).

Utiliser ce lien pour tout autre information ou autres fonctions Arduino : https://www.arduino.cc/reference/fr/

Voici quelques sites permettant de trouver tous les composants nécessaires pour le montage : https://www.gotronic.fr/rechercher.htm https://boutique.semageek.com/fr/2-arduino

Exercice 1 : Prise en main - Commander l'éclairage d'une LED

Cet exercice se décompose en 3 objectifs : allumer une LED, la faire clignoter et enfin commander son intensité lumineuse.

Le montage utilisé pour tout l'exercice se présente ainsi.

Schéma du montage

Matériel nécessaire

- Carte Arduino
- une LED
- Une résistance de 220 ohms
- une plaquette d’essai
- 2 fils mâle/mâle

Réalisation du montage

• Connecter la borne numérique (côté digital) numéro 1 de la carte Arduino à la patte de la résistance.
• Connecter la deuxième patte de la résistance à l’anode de la LED (borne +, tige la plus longue de la LED).
• Brancher la cathode (borne -, tige la plus courte) de la LED au GND de l’Arduino.


Etape 1 : allumage d'une LED

Pour pouvoir allumer cette LED, il faudra utiliser le code Arduino suivant.

void setup()
{
 pinMode(1, OUTPUT); 	//initialise la borne numérique numéro 1 de la carte Arduino en mode sortie 
} 
void loop() 
{ 
 digitalWrite(1, HIGH); 	//le courant est envoyé sur la borne 1, la LED s'allume 
}


Etape 2 : faire clignoter une LED

Ce code Arduino permet de faire clignoter une LED à une fréquence déterminée

void setup() 
{ 
 pinMode(1, OUTPUT); //Initialisation de la broche 1 en sortie 
} 

void loop() 
{ 
 digitalWrite(1, HIGH); //Mise au niveau Haut (Allumage) de la LED 
 delay(1000);		//Délai de 1000ms dans cette position (LED allumée) 
 digitalWrite(1, LOW);	//Mise au niveau bas (Eteint) de la LED 
 delay(1000);	//Délai de 1000ms dans cette position (LED éteinte) 
}

Vous pouvez retrouver une vidéo explicative sur ce lien : https://www.youtube.com/watch?v=OOR3dfWH8HE

Etape 3 : faire varier l'intensité lumineuse d'une LED

Ici le code va faire varier l’intensité lumineuse de la LED, de façon à ce que l’intensité augment linéairement puis lorsque la LED atteint sa valeur maximale (valeur 255, valeur HIGH) puis arrivé a cette valeur, l’intensité lumineuse rediminue jusqu’à ce que la LED soit éteinte (valeur 0, LOW).

int LED = 3;	 // Définition des broches et variables utilisées
int x;		 // Rapport cyclique
void setup() 
{  
 pinMode(LED, OUTPUT);  
} 
 
void loop() 
{  
 x = 0;  
 while (x <= 255) // Allumer progressivement la LED (0 --> 255)
 {
  analogWrite(LED, x);  
  delay(10);  
  x = x+1; 
 }  
 x = 255; 
 while (x >= 0) // Eteindre progressivement la LED (255 --> 0)
 {
  analogWrite(LED, x);  
  delay(10);  
  x = x-1; 
 } 
}