Republique Tunisienne
Ministère de l’Enseignement Supérieur DEVOIR DE CONTROLE Référence : FOR-FSE-19 V01
et de la recherche scientifique
Matière : Programmation
Département : Génie Electrique
Direction Générale des Arduino
Etudes Technologiques Enseignant : Ahmed TAHAR Classe(s) : AII41
Institut Supérieur des Etudes
Technologiques de Gabès
Date : 14/4/2025 Durée : 1 heure Nbre des pages : 4
Exercice 1 : (… points) Questions à Choix Multiples (QCM) :
Cocher la ou les bonnes réponses :
1. Comment déclarer une constante nommée LED_PIN avec une valeur de 9 en
utilisant Arduino ?
a) const LED_PIN = 9;
b) define LED_PIN 9;
c) const int LED_PIN = 9;
d) define int LED_PIN = 9;
2. Quel est le rôle de la fonction setup() dans un programme Arduino ?
a) Initialiser les variables utilisées dans le programme.
b) Configurer les broches d'E/S et effectuer les initialisations nécessaires.
c) Exécuter le code principal du programme.
d) Aucune des réponses ci-dessus.
3. Quelle est la fonction de la ligne pinMode(13, OUTPUT); dans Arduino ?
a) Lire la valeur de la broche 13.
b) Configurer la broche 13 comme une sortie.
c) Configurer la broche 13 comme une entrée.
d) Changer l'état de la broche 13.
4. Comment déclarer une variable de type float nommée temperature en utilisant
Arduino ?
a) variable float temperature;
b) float temperature;
c) int temperature = float;
d) temperature float;
-1-
5. Quelle fonction est utilisée pour écrire une chaîne de caractères sur le port série (Serial) en
utilisant Arduino ?
a) printString()
b) writeString()
c) println()
d) print()
6. Quelle est la syntaxe correcte pour déclarer une variable entière initialisée à 5 ?
a) int x = 5;
b) variable x = 5;
c) x = 5 int;
d) integer x = 5;
7. Parmi ces types de données, lequel n’existe pas en Arduino ?
a) bool;
b) float;
c) string;
d) byte;
8. Où une variable déclarée dans setup() est-elle accessible ?
a) Dans setup(), loop(), et toutes les fonctions.
b) Uniquement dans setup().
c) Dans setup() et loop().
d) Partout dans le code.
9. Quelle est la valeur maximale retournée par analogRead() sur un Arduino Uno ?
a) 255
b) 1023
c) 4095
d) 5
10. Quelle est la résolution (en bits) du signal PWM généré par analogWrite() sur Arduino
Uno ?
a) 10 bits
b) 8 bits
c) 12 bits
d) 16 bits
2
Exercice 2 : (… points)
Le programme ci-dessous contient des erreurs, essayer de le corriger :
// Programme avec des erreurs à trouver // Programme corrigé
const int pinLED = 9;
const int Temps_Delay = 1000;
float seuil = 10.5;
void setup() {
[Link](9600);
pinMode(pinLED, OUTPUT);
int compteur = 0;
}
void loop() {
int mesureAnalogique = analogRead(A0);
float tension = mesureAnallogique * 5.0
/ 1023.0;
if (tension > Seuil) {
digitalWrite(pinLed, HIGH);
delay(temps_delay);
compteur++;
}
else {
digitalWrite(pinLED, LOW);
}
const int pinLED = 10;
const Temps_Delay = 500;
}
Exercice 3 : (… points)
Soit le programme suivant qui permet d’allumer et éteindre une led 3 fois :
void blinkLED(int times) {
for (int i = 0; i < times; i++) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
}
void loop() {
blinkLED(3); // Appel de la fonction
delay(2000);
}
1) Refaire le même programme avec la boucle For.
2) Refaire le même programme avec la boucle while.
3) Refaire le même programme en utilisant do while.
4) Refaire le même programme en proposant une autre fonction.
3
Programme avec For Programme avec while
Programme avec do while Programme avec une autre fonction
Bonne chance