Aller au contenu

Sciences de l'ingénieur (spécialité) · Première

Programmation d'un microcontrôleur : cours de 1re SI

Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur

L'essentiel

  • Programmer un microcontrôleur, c'est traduire un algorithme en un programme exécutable qui lit des entrées et commande des sorties 4.
  • On part du cahier des charges, on construit un algorithme (algorigramme), puis on écrit le programme, par exemple avec Flowcode 3.
  • Un programme embarqué suit presque toujours le schéma : initialiser, puis répéter lecture, décision, action.
  • Les conditions (si… alors… sinon…) et les temporisations transforment une mesure en comportement du système.
  • On valide toujours : simulation puis essai réel, en comparant au cahier des charges 4.

Pourquoi programmer un microcontrôleur ?

Autour de toi, beaucoup d'objets réagissent à leur environnement : un volet qui se ferme à la tombée de la nuit, un thermomètre qui change de couleur, une barrière qui se lève. Derrière ces comportements, il y a presque toujours un microcontrôleur que quelqu'un a programmé.

En sciences de l'ingénieur, le programme d'enseignement de spécialité des classes de première et de terminale générales a été fixé par le Bulletin officiel spécial n° 1 du 22 janvier 2019 1. Dans ce cadre, programmer ne consiste pas à écrire du code pour le plaisir : on cherche à faire réaliser une fonction à un système réel, en respectant un cahier des charges.

Les ressources pédagogiques publiées pour les enseignants présentent le microcontrôleur à travers son rôle, ses entrées et sorties, sa programmation et des exemples de programmes, avec en particulier le module Arduino 2. Ces quatre idées forment le plan de ce cours.

Tu as déjà vu comment l'information s'exprime sous forme numérique (codage de l'information) et comment on combine des états vrai/faux (logique combinatoire). Ces deux notions servent ici : un microcontrôleur manipule des nombres, et ses décisions reposent sur des conditions logiques.

Le microcontrôleur et ses entrées-sorties

Un système automatisé a besoin de trois fonctions : acquérir une information, la traiter, agir. Le microcontrôleur assure le traitement : il lit des informations venant de capteurs et commande des actionneurs ou des voyants. Un document de formation de l'académie de Caen consacre une partie de son contenu au rôle du microcontrôleur et à ses entrées-sorties 2.

La chaîne d'information du systèmeTrois étapes : acquérir l'information avec un capteur, la traiter avec le microcontrôleur, agir avec un actionneur ou un voyant.1AcquérirUn capteur ou un bouton fournit l'entrée2TraiterLe microcontrôleur applique le programme3AgirUne LED ou un vérin reçoit la commande
  1. AcquérirUn capteur ou un bouton fournit l'entrée
  2. TraiterLe microcontrôleur applique le programme
  3. AgirUne LED ou un vérin reçoit la commande
La chaîne d'information du système · Le microcontrôleur occupe la fonction traiter.

Du cahier des charges à l'algorithme

On ne commence jamais par écrire des lignes de code. On commence par répondre à la question : que doit faire le système ? Un TP publié sur les ressources pédagogiques vise justement à ce que l'élève sache concevoir la logique de son programme, sous forme d'algorithme, à partir de ce qu'exige le cahier des charges 3.

L'algorigramme : dessiner le fonctionnement

Pour passer de l'idée au programme, on utilise un schéma. Dans le TP « niveau laser de chantier », la première partie consiste à compléter l'algorigramme de fonctionnement du laser, la seconde à créer le programme avec le logiciel Flowcode 3. Un autre TD propose de traduire un algorithme en organigramme de programmation, puis de simuler le comportement pour un microcontrôleur PIC 3.

De la demande au système validéCinq étapes successives allant du cahier des charges à la validation sur le matériel réel.1Cahier des chargesDire ce que le système doit faire2AlgorigrammeDessiner entrées, tests et actions3ProgrammeTraduire le schéma en instructions4SimulationTester avec des valeurs limites5Essai réelComparer au cahier des charges
  1. Cahier des chargesDire ce que le système doit faire
  2. AlgorigrammeDessiner entrées, tests et actions
  3. ProgrammeTraduire le schéma en instructions
  4. SimulationTester avec des valeurs limites
  5. Essai réelComparer au cahier des charges
De la demande au système validé

La structure d'un programme embarqué

Le programme d'un microcontrôleur n'a généralement pas de fin : tant que le système est alimenté, il doit continuer à surveiller et à agir. D'où une structure en deux temps, que tu retrouveras quel que soit le langage ou le logiciel.

Variables, conditions et boucles

Trois outils suffisent pour la grande majorité des programmes de ce niveau.

Les trois outils de programmation
OutilRôleExemple
VariableGarder une valeurDernière température
ConditionChoisir une actionSi T < 25, LED verte
BoucleRépéterSurveiller sans fin
Les trois outils de programmation

Lire une grandeur analogique et gérer le temps

Beaucoup de capteurs fournissent une tension qui varie de façon continue. Pour que le programme la traite, elle doit être convertie en nombre : c'est le lien avec le codage de l'information vu avant. Les ressources sur les composants « System on Chip » mentionnent d'ailleurs une partie numérique et une partie analogique dans le même système 5.

Le temps. Un microcontrôleur exécute ses instructions très vite. Pour qu'une LED clignote de façon visible, il faut insérer une temporisation, c'est-à-dire une pause de durée choisie. La période d'un clignotement est la durée d'un cycle complet allumé + éteint ; sa fréquence est son inverse : f=1Tf = \frac{1}{T}.

Valider : simuler puis tester

Un programme qui compile n'est pas forcément un programme qui fonctionne. Parmi les compétences travaillées dans les projets de première en spécialité SI figurent « traduire un algorithme en un programme exécutable » et « valider un modèle numérique de l'objet simulé » 4. Les deux se complètent : on écrit, puis on vérifie.

Programmer un microcontrôleurCarte mentale à quatre branches : cahier des charges, algorithme, programme et validation.EntréesSortiesConditionsCahier des chargesAlgorigrammeTestsBoucleAlgorithmeInitialisationBoucle principaleVariablesProgrammeSimulationValeurs limitesEssai réelValidationProgrammation

Programmation

  • Cahier des charges
    • Entrées
    • Sorties
    • Conditions
  • Algorithme
    • Algorigramme
    • Tests
    • Boucle
  • Programme
    • Initialisation
    • Boucle principale
    • Variables
  • Validation
    • Simulation
    • Valeurs limites
    • Essai réel
Programmer un microcontrôleur

Exercices corrigés

Exercice 1 Clignotement et fréquence

★☆☆Environ 8 min

Une LED doit clignoter avec une fréquence de 2 Hz. Elle reste allumée pendant la moitié de chaque période. Quelle temporisation, en millisecondes, faut-il placer après l'allumage ?

Indice 1

La période est l'inverse de la fréquence.

Indice 2

Convertis les secondes en millisecondes, puis prends la moitié.

Voir la correction pas à pas
  1. Calculer la période : T=1f=12=0,5T = \frac{1}{f} = \frac{1}{2} = 0{,}5 s.

  2. Convertir : 0,5 s=5000{,}5\ \text{s} = 500 ms.

  3. La LED est allumée la moitié de la période : 500/2=250500 / 2 = 250 ms.

  4. Programme : allumer, attendre 250 ms, éteindre, attendre 250 ms, recommencer.

La temporisation après l'allumage est de 250 ms, comme celle après l'extinction.

Exercice 2 Lire une tension

★★☆Environ 10 min

Un capteur fournit une tension à un convertisseur analogique-numérique de 10 bits, de tension de référence 5 V. Le programme lit la valeur N=768N = 768. En utilisant la relation U=Vref×N/2nU = V_{ref} \times N / 2^n, calcule la tension mesurée.

Indice 1

Calcule d'abord 2102^{10}.

Indice 2

Remplace dans la formule puis simplifie la fraction.

Voir la correction pas à pas
  1. Calculer le nombre de valeurs possibles : 210=10242^{10} = 1024.

  2. Écrire la formule avec les données : U=5×7681024U = 5 \times \frac{768}{1024}.

  3. Simplifier : 7681024=0,75\frac{768}{1024} = 0{,}75.

  4. Conclure : U=5×0,75=3,75U = 5 \times 0{,}75 = 3{,}75 V.

La tension mesurée est de 3,75 V.

Exercice 3 Durée d'une séquence de clignotements

★★★Environ 12 min

Un programme fait clignoter une LED 10 fois : à chaque cycle, elle reste allumée 300 ms puis éteinte 200 ms. Une fois les 10 cycles terminés, le programme attend 1 s avant de s'arrêter. Quelle est la durée totale de la séquence, en secondes ?

Indice 1

Calcule la durée d'un cycle en millisecondes.

Indice 2

N'oublie pas l'attente finale, et convertis à la fin.

Voir la correction pas à pas
  1. Durée d'un cycle : 300+200=500300 + 200 = 500 ms.

  2. Durée des 10 cycles : 10×500=500010 \times 500 = 5000 ms, soit 5 s.

  3. Ajouter l'attente finale : 5+1=65 + 1 = 6 s.

  4. Vérifier l'unité : le résultat demandé est en secondes.

La séquence dure 6 s.

Quiz

7 questions · correction immédiate · ton score reste sur ton appareil.

  1. Quelle est la meilleure première étape avant d'écrire un programme pour un système ?

  2. Dans un programme embarqué, où place-t-on la lecture d'un capteur qui doit réagir en permanence ?

  3. Un losange dans un algorigramme représente en général :

  4. Quelles propositions sont des entrées pour un microcontrôleur ?

    Plusieurs réponses possibles.

  5. Pour traiter T=40T = 40 dans le thermomètre, on a écrit « froide si T<25T < 25, tiède si 25<T<4025 < T < 40, chaude si T>40T > 40 ». Est-ce correct ?

  6. Un convertisseur de 8 bits avec Vref=5V_{ref} = 5 V renvoie N=64N = 64. Quelle est la tension en volts ?

  7. Que fait l'instruction si (T = 25) dans un langage de type C ?

Les questions qu'on se pose

Faut-il connaître un langage précis pour réussir ce chapitre ?

Non. La démarche compte plus que la syntaxe : cahier des charges, algorithme, programme, validation. Les ressources pédagogiques utilisent plusieurs outils (Flowcode, Arduino, langage C) pour une même démarche 235. Si tu maîtrises les structures (variable, condition, boucle), tu t'adapteras à n'importe quel outil.

Quelle différence entre un algorithme et un programme ?

L'algorithme décrit la solution de manière indépendante du langage ; le programme est sa traduction dans un langage compris par le microcontrôleur. Cette traduction fait partie des compétences travaillées en spécialité SI 4.

Pourquoi mon programme compile mais le système ne fait pas ce que je veux ?

Compiler signifie seulement que la syntaxe est correcte. L'erreur peut venir d'une condition mal écrite, d'une valeur limite oubliée, d'une unité de temps fausse ou d'un câblage. D'où l'intérêt de la démarche de validation : tests avec valeurs limites, puis essai réel.

À quoi sert un algorigramme si je sais déjà coder ?

Il permet de vérifier la logique avant de coder, de communiquer avec les autres membres d'un projet et de repérer les cas oubliés. Dans les activités proposées, on complète d'abord l'algorigramme, puis on crée le programme 3.

Pourquoi ajouter une temporisation ?

Le microcontrôleur exécute les instructions bien plus vite que l'œil ne perçoit. Sans pause, un clignotement paraît une lumière fixe. La temporisation fixe la durée de chaque état ; vérifie toujours l'unité (ms ou s).

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

  1. 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.
  2. Académie de Caen — Petit cours sur les microcontrôleurs, Éduscol STI. Consulté le 6 novembre 2026.
  3. STI2D Activité — Apprentissage à la programmation d'un microcontrôleur (niveau laser de chantier), Éduscol STI. Consulté le 6 novembre 2026.
  4. Projet en classe de première en Spécialité SI, Éduscol STI. Consulté le 6 novembre 2026.
  5. Formation « System on Chip » avec les microcontrôleurs CYPRESS PSoC, Éduscol STI. Consulté le 6 novembre 2026.
  6. 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.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page