Difference between revisions of "Exercice Arduino FCU"
Wiki.admin (talk | contribs) |
Wiki.admin (talk | contribs) |
||
| 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 | ||
} | } | ||
| − | void loop() { | + | void loop() |
| − | + | { | |
| + | 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 |
| + | } | ||
| − | 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, 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 | ||
| − | + | 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) | + | { |
| − | + | 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) | + | 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.
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;
}
}