Renforcer la compréhension des bases Arduino par la pratique.
Appliquer les notions de variables, conditions, boucles, tableaux et fonctions.
Manipuler les capteurs, LEDs, boutons et le moniteur série.
Où on va
Huit exercices qui reprennent, dans l'ordre, tout ce que les chapitres précédents ont introduit : variables, conditions, boucles, tableaux, fonctions, capteurs et moniteur série. Cherche d'abord, ouvre le corrigé ensuite : lire une solution donne l'impression d'avoir compris, l'écrire le prouve.
Exercice 1 : Manipulation de variables
Objectif : Se familiariser avec les types de variables et leur manipulation.
Déclarez une variable temperature de type int et une variable humidite de type float.
Affichez leurs valeurs dans le moniteur série.
Modifiez-les, puis affichez à nouveau leurs valeurs.
Afficher la solutionArduino
1voidsetup() {
2Serial.begin(9600);
3
4int temperature =25;
5float humidite =60.5;
6Serial.println(temperature);
7Serial.println(humidite);
8temperature =30;
9humidite =55.0;
10Serial.println(temperature);
11Serial.println(humidite);
12}
13voidloop() {}
Exercice 2 : Condition simple pour une LED
Objectif : Utiliser une condition if pour allumer une LED si une valeur est supérieure à 50.
Afficher la solutionArduino
1voidsetup() {
2pinMode(LED_BUILTIN, OUTPUT);
3int luminosite =30;
4
5if (luminosite >50) {
6digitalWrite(LED_BUILTIN, HIGH);
7} else {
8digitalWrite(LED_BUILTIN, LOW);
9}
10}
11voidloop() {}
Exercice 3 : Boucle pour clignoter une LED
Objectif : Utiliser une boucle for pour faire clignoter la LED 5 fois.
Afficher la solutionArduino
1voidsetup() {
2pinMode(LED_BUILTIN, OUTPUT);
3
4for (int i =0; i <=5; i++) {
5digitalWrite(LED_BUILTIN, HIGH);
6delay(1000);
7digitalWrite(LED_BUILTIN, LOW);
8delay(1000);
9}
10}
11voidloop() {}
Exercice 4 : Lecture capteur dans un tableau
Objectif : Lire 10 valeurs d’un capteur et les stocker dans un tableau.
Afficher la solutionArduino
1int lectures[10];
2
3voidsetup() {
4Serial.begin(9600);
5for (int i =0; i <10; i++) {
6lectures[i] =analogRead(A0);
7Serial.print("Lecture ");
8Serial.print(i);
9Serial.print(" : ");
10Serial.println(lectures[i]);
11delay(500);
12}
13}
14voidloop() {}
Exercice 5 : Calcul de moyenne
Objectif : Créer une fonction pour calculer la moyenne des valeurs d’un tableau.
Afficher la solutionArduino
1int lectures[10];
2
3voidsetup() {
4Serial.begin(9600);
5for (int i =0; i <10; i++) {
6lectures[i] =analogRead(A0);
7delay(500);
8}
9float moyenne = calculerMoyenne(lectures, 10);
10Serial.print("Moyenne : ");
11Serial.println(moyenne);
12}
13voidloop() {}
14float calculerMoyenne(int tableau[], int taille) {
15int somme =0;
16for (int i =0; i < taille; i++) {
17somme += tableau[i];
18}
19return (float)somme / taille;
20}
Exercice 6 : Clignotement avec fonction
Objectif : Créer une fonction clignoterLED prenant un délai comme paramètre.
Afficher la solutionArduino
1voidsetup() {
2pinMode(LED_BUILTIN, OUTPUT);
3}
4
5voidloop() {
6clignoterLED(500);
7delay(1000);
8clignoterLED(100);
9delay(1000);
10}
11void clignoterLED(int delai) {
12digitalWrite(LED_BUILTIN, HIGH);
13delay(delai);
14digitalWrite(LED_BUILTIN, LOW);
15delay(delai);
16}
Exercice 7 : Comparaison entre deux capteurs
Objectif : Lire A0 et A1, comparer les deux, et agir selon le résultat.
Afficher la solutionArduino
1voidsetup() {
2Serial.begin(9600);
3pinMode(LED_BUILTIN, OUTPUT);
4}
5
6voidloop() {
7int a0 =analogRead(A0);
8int a1 =analogRead(A1);
9if (a0 > a1) {
10digitalWrite(LED_BUILTIN, HIGH);
11} else {
12digitalWrite(LED_BUILTIN, LOW);
13Serial.println("A1 est plus grand");
14}
15delay(1000);
16}
Exercice 8 : LED contrôlée par un bouton
Objectif : Créer une fonction etatBouton() pour allumer une LED si le bouton est pressé.