Sciences de l'ingénieur (spécialité) · Première
Programmer un microcontrôleur : exercices corrigés de 1re SI
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Programmer, c'est partir du cahier des charges, écrire un algorithme (souvent un algorigramme), puis le traduire en programme exécutable 34.
- Avant de coder, liste les entrées (capteurs, boutons), les sorties (LED, actionneurs) et les conditions qui les relient.
- Une grandeur analogique lue par le microcontrôleur devient un nombre entier : sache passer de la tension à la valeur numérique et inversement.
- Teste toujours les cas limites (valeur exactement égale au seuil, premier et dernier passage dans une boucle).
- Un temps d'attente se calcule : durée d'une itération multipliée par le nombre d'itérations.
Comment utiliser ces exercices
Ces exercices t'entraînent à la démarche qui mène d'un besoin à un programme de microcontrôleur. Dans les activités de formation, on attend de l'élève qu'il sache construire l'algorithme d'un programme à partir de ce que demande le cahier des charges 3. Une compétence du référentiel porte ensuite sur la mise en code : passer de l'algorithme à un programme que la machine peut exécuter 4. Les exercices suivent ce chemin : comprendre le besoin, écrire l'algorithme, puis vérifier par le calcul que le programme se comportera comme prévu.
Cherche d'abord seul(e), sur une feuille. Ouvre un indice seulement si tu es bloqué(e), puis compare ta solution à la correction, étape par étape.
Les exercices
Exercice 1 Combien de valeurs pour un convertisseur ?
Un microcontrôleur lit la tension d'un capteur grâce à un convertisseur analogique-numérique (CAN) de 10 bits. Le résultat de la conversion est un nombre entier écrit sur 10 bits.
- Combien de valeurs entières différentes le résultat peut-il prendre ?
- Le CAN mesure des tensions entre et et répartit cette plage en autant d'intervalles que de valeurs. Quelle est la taille d'un intervalle, en millivolts (arrondie au centième) ?
Indice 1
Le codage de l'information numérique te donne le nombre de combinaisons de bits : .
Indice 2
Divise la plage de tension par le nombre de valeurs, puis convertis en millivolts.
Voir la correction pas à pas
On rappelle que bits donnent combinaisons différentes.
On applique avec : valeurs possibles.
On calcule la taille d'un intervalle : .
On convertit en millivolts : .
Le CAN distingue 1024 valeurs ; deux tensions qui diffèrent de moins de peuvent donc donner le même nombre. C'est cet intervalle qui limite la précision de la mesure.
Exercice 2 De la tension au nombre lu
Le CAN de 10 bits de l'exercice précédent est utilisé avec une tension de référence . Dans cet exercice, on admet que la valeur numérique obtenue est la partie entière de :
Un capteur délivre .
- Calcule .
- Le programme allume la LED verte si . La LED verte s'allume-t-elle ?
Indice 1
Remplace et par leurs valeurs avant de multiplier par .
Indice 2
N'arrondis pas : prends la partie entière, c'est-à-dire que tu supprimes les décimales.
Voir la correction pas à pas
On écrit la formule avec les données : .
On calcule le rapport : .
On multiplie : .
On prend la partie entière : .
On compare au seuil : est vrai, donc la condition est satisfaite.
On obtient et la LED verte s'allume. Retiens le réflexe : le programme ne manipule jamais des volts, mais des entiers qu'on sait relier aux volts par un calcul.
Exercice 3 Trouver la valeur de seuil à programmer
Un capteur de température délivre une tension proportionnelle à la température : par degré Celsius, soit . Le CAN est celui de l'exercice précédent ( bits, , = partie entière de ).
Le cahier des charges demande d'allumer une LED d'alerte lorsque la température atteint .
- Quelle tension le capteur délivre-t-il à ?
- Quelle valeur de seuil (partie entière) le programmeur doit-il comparer au résultat de la conversion ?
Indice 1
La tension se déduit du coefficient du capteur : tension = coefficient température.
Indice 2
Applique ensuite la formule de conversion et garde la partie entière.
Voir la correction pas à pas
On calcule la tension à : .
On applique la formule : .
On calcule : .
On prend la partie entière : .
On vérifie la cohérence : pour la tension est , soit environ , tout près des visés.
Le test du programme sera de la forme « si alors allumer la LED ». À cause de l'intervalle de conversion, la LED s'allume à quelques dixièmes de degré près : c'est la précision du CAN, pas une erreur de programme.
Exercice 4 Le rapport cyclique d'un clignotement
Pour signaler un défaut, un programme fait clignoter une LED en boucle : il l'allume pendant , puis l'éteint pendant , puis recommence.
- Quelle est la période du clignotement, en secondes ?
- Quelle est sa fréquence, en hertz ?
- Calcule le rapport cyclique, c'est-à-dire la part de la période pendant laquelle la LED est allumée, en pourcentage.
Indice 1
La période regroupe la durée d'allumage et la durée d'extinction.
Indice 2
Le rapport cyclique est une durée d'allumage divisée par la période complète.
Voir la correction pas à pas
On additionne les deux durées : , soit une période .
On calcule la fréquence : .
On forme le rapport : .
On exprime en pourcentage : .
La LED est allumée 25 % du temps, avec une période de et une fréquence de . Piège classique : diviser par donnerait , ce qui oublie que la période contient les deux phases.
Exercice 5 Tracer le comportement d'une boucle
Voici un algorithme décrit en langage naturel :
- prend la valeur ;
- tant que : prend la valeur ;
- afficher .
- Dresse le tableau des valeurs de à chaque passage.
- Combien de fois le corps de la boucle est-il exécuté ?
- Quelle valeur est affichée à la fin ?
Indice 1
Avant chaque passage, tu testes la condition « » avec la valeur actuelle de .
Indice 2
La boucle s'arrête dès que la condition devient fausse ; la valeur de à ce moment-là est celle affichée.
Voir la correction pas à pas
On initialise : .
Test : est vrai, donc on exécute le corps et .
Test : est vrai, donc .
Test : est vrai, donc .
Test : est faux, la boucle s'arrête sans exécuter le corps une quatrième fois.
On compte les exécutions du corps : trois.
On lit la valeur finale : .
Le corps s'exécute 3 fois et le programme affiche 9, une valeur supérieure au seuil . Le test se fait avant chaque passage : la boucle peut donc dépasser le seuil au dernier tour. Cette trace à la main évite l'erreur d'une itération en trop ou en moins.
Exercice 6 Calculer une temporisation
Pour attendre quelques millisecondes, un programmeur utilise une boucle d'attente. On suppose que chaque tour de cette boucle dure exactement , et que le microcontrôleur ne fait rien d'autre pendant ce temps.
Le cahier des charges impose d'attendre entre deux actions.
- Convertis les deux durées en secondes.
- Combien de tours de boucle faut-il programmer ?
- On veut maintenant attendre . Par quel facteur le nombre de tours est-il multiplié ?
Indice 1
Écris et .
Indice 2
Durée totale = nombre de tours durée d'un tour : isole le nombre de tours.
Voir la correction pas à pas
On convertit la durée visée : .
On convertit la durée d'un tour : .
On écrit la relation : durée totale .
On isole : .
On calcule : .
Pour , la durée est multipliée par : le nombre de tours aussi, soit .
Il faut 500 tours pour , et pour . La durée est proportionnelle au nombre de tours : c'est la clé de tout calcul de temporisation.
Exercice 7 Commander un vérin avec deux capteurs
Une ressource de formation propose de transformer un algorithme en organigramme pour un microcontrôleur PIC, sur un vérin simple effet 3. On s'en inspire avec un cahier des charges inventé.
- Une entrée est à quand l'opérateur appuie sur le bouton de sortie.
- Une entrée est à quand le capteur de fin de course détecte la tige sortie.
- Une sortie commande le distributeur : à , la tige sort ; à , elle rentre (rappel par ressort).
Règles : la tige sort tant que le bouton est maintenu et que la fin de course n'est pas atteinte ; sinon elle rentre.
- Écris la condition logique de en fonction de et .
- Complète le tableau de vérité de pour les quatre combinaisons.
- Écris l'algorithme sous la forme d'une boucle infinie avec un test.
- Quel cas limite faut-il tester sur le banc ?
Indice 1
Utilise la logique combinatoire : « et » et « non » suffisent ici.
Indice 2
Le cas où les deux capteurs sont actifs en même temps mérite un test particulier.
Voir la correction pas à pas
On traduit la règle : sortir si et , ce qui s'écrit .
On construit le tableau : ; ; ; .
On écrit l'algorithme : répéter indéfiniment ; lire ; lire ; si et alors sinon .
On repère le cas limite : et (bouton maintenu, tige déjà au bout), où le distributeur doit retomber à .
On prévoit le test : appuyer sur le bouton jusqu'à la fin de course, puis vérifier que la tige ne force pas et que passe bien à .
La commande est . Le cas et est celui qui révèle une condition mal écrite : un programme qui ne testerait que ferait forcer le vérin en butée.
Exercice 8 Programmer un indicateur de température par couleurs
Le ColorEau est un produit qui informe l'utilisateur de la température de l'eau grâce à des couleurs ; l'activité associée demande de programmer le microcontrôleur pour piloter l'affichage des LED 3. On étudie une version simplifiée, avec un cahier des charges inventé.
On note la température mesurée, en degrés Celsius.
- : LED bleue allumée seule.
- : LED verte allumée seule.
- : LED rouge allumée seule.
- Écris l'algorithme avec des tests imbriqués ou successifs.
- Dresse un jeu de valeurs de test qui couvre toutes les zones et les valeurs limites.
- Un élève écrit « si bleu, sinon si vert, sinon rouge ». Pour quelle valeur de son programme ne respecte-t-il pas le cahier des charges ?
Indice 1
Les zones sont consécutives : un « sinon si » suffit à enchaîner les tests.
Indice 2
Compare soigneusement les bornes du cahier des charges avec celles du programme de l'élève.
Voir la correction pas à pas
On écrit l'algorithme : lire ; si alors allumer bleue ; sinon si alors allumer verte ; sinon allumer rouge.
On choisit des valeurs de test pour chaque zone : (bleue), (verte), (rouge).
On ajoute les valeurs limites : (bleue), (verte), (verte), (rouge).
On analyse le programme de l'élève : son deuxième test est , donc échoue ce test.
Pour , son programme tombe dans le « sinon » et allume la LED rouge.
Le cahier des charges demande la LED verte pour : c'est un écart.
Le programme de l'élève se trompe pour exactement : il faut écrire et non . Cette erreur d'une borne ne se voit qu'avec des valeurs de test choisies sur les limites, jamais avec des valeurs « au milieu ».
Les questions qu'on se pose
Faut-il faire l'algorigramme avant d'écrire le programme ?
Oui, pour tout problème qui comporte plusieurs cas ou une boucle. Les activités de prise en main du logiciel Flowcode procèdent ainsi : une première partie consiste à compléter l'algorigramme de fonctionnement, une seconde à créer le programme 3. L'algorigramme te force à réfléchir aux cas avant de te perdre dans le code.
Je dois programmer en quel langage ?
Pourquoi calculer des valeurs numériques si le programme le fait tout seul ?
Parce que c'est toi qui choisis les seuils à écrire dans le programme, et qui dois vérifier qu'ils répondent au cahier des charges. Sans ce calcul, tu ne peux pas savoir si la LED s'allumera à la bonne température ni quelle précision tu peux espérer.
Sources
Programme visé : Programme d'enseignement de spécialité de sciences de l'ingénieur des classes de première et terminale de la voie générale · Ministère de l'Éducation nationale et de la Jeunesse
- Programme d'enseignement de spécialité de sciences de l'ingénieur des classes de première et terminale de la voie générale, Ministère de l'Éducation nationale et de la Jeunesse. Consulté le 6 novembre 2026.
- Académie de Caen — Petit cours sur les microcontrôleurs, Éduscol STI. Consulté le 6 novembre 2026.
- STI2D Activité — Apprentissage à la programmation d'un microcontrôleur (niveau laser de chantier), Éduscol STI. Consulté le 6 novembre 2026.
- Projet en classe de première en Spécialité SI, Éduscol STI. Consulté le 6 novembre 2026.
- Formation « System on Chip » avec les microcontrôleurs CYPRESS PSoC, Éduscol STI. Consulté le 6 novembre 2026.
- Programmes et ressources en sciences de l'ingénieur — Voie générale, Éduscol. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.