Moteur – Thermostat
Allumage d’un moteur (sans IDE)
Le programme suivant permet de contrôler l’allumage d’un moteur.
La fonction marche permet de mettre le moteur en marche, tandis que la fonction arret permet de l’arrêter.
while True: # boucle infinie
if boutonM:
marche()
if boutonA:
arret()

Thermostat
On souhaite allumer ou étendre un système de chauffage en fonction d’une température mesurée et d’une consigne.
La température est mesurée chaque minute. Si elle est inférieure à la température de consigne -10%, le chauffage est mis en route. Lorsqu’elle devient supérieure ou égale à la température de consigne +10%, alors le chauffage s’éteint.
time.sleep, consulter la documentation).import time
while True:
T = mesurerTemperature()
if T > consigne * ..A.. :
allumer()
elif T < consigne * ..B.. :
eteindre()
time.sleep(..C..)
Contrôle d’un moteur à courant continu
Pour contrôler le sens de rotation d’un moteur à courant continu, on utilise un montage électronique appelé pont en H, composé de 4 transistors (des composants à semi-conducteur se comportant comme des interrupteurs). Ce circuit fournit 4 commandes possibles pour un moteur :
| Arrêt (libre) | Sens + | Sens – | Arrêt (freiné) |
![]() |
![]() |
![]() |
![]() |
On désire écrire une fonction en Python pour chacun de ces 4 états :
stopperavancerreculerfreiner

Les 4 transistors sont commandés via les ports GPIO d’un nano-ordinateur de type Rasberry Pi, dont les numéros sont enregistrés dans 4 variables T1, T2, T3 et T4, dont la correspondance dans le pont en H est décrite ci-contre.
Depuis le Raspberry Pi, les ports GPIO peuvent être contrôlés en langage Python grâce à la commande suivante :
GPIO.output(numero_port, etat)
numero_portest un nombre entier désignant la broche physique du GPIO (ici permettant la commande d’un transistor : ouverture ou fermeture)etatest un booléen correspondant à l’état logique (haut :Trueou bas :False) du port (ici, l’état haut signifie que le transistor est saturé, c’est à dire équivalent à un interrupteur fermé)
def stopper():
GPIO.output(....)
....
def avancer():
....
def reculer():
....
def freiner():
....




