logo

Exercices Corrigés – Arduino

Objectifs Pédagogiques
  • 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.

Exercice 1 : Manipulation de variables

Objectif : Se familiariser avec les types de variables et leur manipulation.
  1. Déclarez une variable temperature de type int et une variable humidite de type float.
  2. Affichez leurs valeurs dans le moniteur série.
  3. Modifiez-les, puis affichez à nouveau leurs valeurs.
void setup() {
  Serial.begin(9600);
  

int temperature = 25; float humidite = 60.5;

Serial.println(temperature); Serial.println(humidite);

temperature = 30; humidite = 55.0;

Serial.println(temperature); Serial.println(humidite); }

void loop() {}

Exercice 2 : Condition simple pour une LED

Objectif : Utiliser une condition if pour allumer une LED si une valeur est supérieure à 50.
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  int luminosite = 30;

if (luminosite > 50) { digitalWrite(LED_BUILTIN, HIGH); } else { digitalWrite(LED_BUILTIN, LOW); } }

void loop() {}

Exercice 3 : Boucle pour clignoter une LED

Objectif : Utiliser une boucle for pour faire clignoter la LED 5 fois.
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  

for (int i = 0; i < 5; i++) { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } }

void loop() {}

Exercice 4 : Lecture capteur dans un tableau

Objectif : Lire 10 valeurs d’un capteur et les stocker dans un tableau.
int lectures[10];

void setup() { Serial.begin(9600);

for (int i = 0; i < 10; i++) { lectures[i] = analogRead(A0); Serial.print("Lecture "); Serial.print(i); Serial.print(" : "); Serial.println(lectures[i]); delay(500); } }

void loop() {}

Exercice 5 : Calcul de moyenne

Objectif : Créer une fonction pour calculer la moyenne des valeurs d’un tableau.
int lectures[10];

void setup() { Serial.begin(9600);

for (int i = 0; i < 10; i++) { lectures[i] = analogRead(A0); delay(500); }

float moyenne = calculerMoyenne(lectures, 10); Serial.print("Moyenne : "); Serial.println(moyenne); }

void loop() {}

float calculerMoyenne(int tableau[], int taille) { int somme = 0; for (int i = 0; i < taille; i++) { somme += tableau[i]; } return (float)somme / taille; }

Exercice 6 : Clignotement avec fonction

Objectif : Créer une fonction clignoterLED prenant un délai comme paramètre.
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() { clignoterLED(500); delay(1000); clignoterLED(100); delay(1000); }

void clignoterLED(int delai) { digitalWrite(LED_BUILTIN, HIGH); delay(delai); digitalWrite(LED_BUILTIN, LOW); delay(delai); }

Exercice 7 : Comparaison entre deux capteurs

Objectif : Lire A0 et A1, comparer les deux, et agir selon le résultat.
void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() { int a0 = analogRead(A0); int a1 = analogRead(A1);

if (a0 > a1) { digitalWrite(LED_BUILTIN, HIGH); } else { digitalWrite(LED_BUILTIN, LOW); Serial.println("A1 est plus grand"); }

delay(1000); }

Exercice 8 : LED contrôlée par un bouton

Objectif : Créer une fonction etatBouton() pour allumer une LED si le bouton est pressé.
const int boutonPin = 2;
const int ledPin = LED_BUILTIN;

void setup() { pinMode(boutonPin, INPUT); pinMode(ledPin, OUTPUT); }

void loop() { if (etatBouton()) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }

bool etatBouton() { return digitalRead(boutonPin) == HIGH; }