Tutoriel Raspberry Pi
Module L298N : Contrôle de moteurs à courant continu


Mis à jour le : 07/07/2019


Le Raspberry Pi est parfaitement adapté à de nombreux projets de robotique. Les moteurs sont largement utilisés dans ces types de projet. Il existe trois grandes catégories de moteurs :

Dans ce tutoriel, nous allons voir comment contrôler jusqu'à deux moteurs à courant continu grâce au double pont H L298N.
Avant de commencer, et pour bien comprendre comment le module fonctionne, voici une rapide présentation du pont H en électronique :

Information

Qu'est ce qu'un pont en H en électronique ?

En électronique un pont en H est un circuit qui permet de faire passer le courant dans un sens ou dans l'autre à travers un dipole. Ce genre de circuit est très utile pour choisir le sens de rotation d'un moteur. En effet, en inversant l'alimentation d'un moteur, celui-ci va changer de sens.

Schématiquement, voilà le principe de fonctionnement du pont H, qui résume l'explication ci-dessus.
A, B, C, D sont modélisés par des interrupteurs, dans la réalité, ce sont des transistors. Pour simplifier, un transistor est un interrupteur, de taille pouvant être nanoscopique, contrôlable par une impultion electrique.

Schéma de fonctionnement d'un pont en H en électronique

Il suffit alors de contrôler les interupteurs pour choisir le sens de rotation du moteur. C'est justement ce que fait le module L298N !

Prérequis

Pour contrôler des moteurs CC à l'aide d'un Raspberry Pi, il faut :

Une fois tous les éléments réunis, on peut passer au branchement.

Branchement du module

Voici pour commencer une vue du module L298N mettant en évidence ses entrées/sorties.

Module L298N avec entrées/sorties

Voici le branchement que je vous propose pour contrôler vos moteurs CC.


Schéma de branchement du module L289N sur Raspberry Pi 3 avec 2 moteurs
Schéma de branchement du module L289N sur Raspberry Pi 3 avec 1 moteur

Utilisation du module en Python

Maintenant que tout est branché correctement (ça fait pas mal de fils !), intéressons nous au code. Le programme ci-dessous implémente les principales fonctions pour faire tourner dans un sens ou dans l'autre un moteur.
La commande du module est en fait très simple. Pour faire tourner le moteur 1 (resp. 2) dans un sens, on met IN1 sur 5V et IN2 sur 0V. Pour inverser le sens de rotation, il suffit d'inverser le 5V avec le 0V.

Gestion de la vitesse de rotation

Avant de terminer ce tutoriel, voyons comment contrôler la vitesse de nos moteurs. Pour faire varier la vitesse d'un moteur sans changer la tension d'entrée de ce dernier, on va "tricher" un peu. Plutôt que d'envoyer une tension continue au moteur (+VCC en permanence), on va délivrer une tension qui alterne entre +VCC et 0V.
On définit par rapport cyclique la division entre le temps haut et la période (temps haut + temps bas). Le raport cyclique est donc une valeur comprise entre 0 et 1. Plus elle est proche de 1, plus le moteur tournera vite.

Schema explicatif rapport cyclique

Le moteur va donc être alimenté pendant un certain temps, donc se mettre à tourner, puis l'alimentation est coupée pendant un second temps. Grâce au principe d'inertie, le moteur n'a pas le temps de s'arrêter et va juste tourner de moins en moins vite.

En Python, l'objet PWM (Pulse Width Modulation) permet de faire varier le rapport cyclique de la sortie d'un GPIO. Appliqué à l'entrée Enable du moteur 1 par exemple, on gère la vitesse comme ceci :

La fréquence est à choisir en fonction du moteur utilisé. Essayer differentes valeurs pour trouver une valeur acceptable, c'est à dire une valeur pour laquelle le moteur ne fait pas d'à-coups (valeur de fréquence trop faible) mais tourne quand même sans faire trop de bruit (valeur de fréquence trop élevée).


Il ne reste plus qu'à utiliser tout ça pour divers projets de robotique !




Ce tutoriel vous a plu ?

0/5 | Pas encore de votes




Commentaires



Commenter
Votre adresse mail ne sera pas visible sur le site.

Seuls les commentaires jugés corrects seront mis en ligne.



Composants Bien débuter sur le Raspberry PI Configurer le Raspberry Pi
Ecran LCD 16x02 Accessoires indispensables sur Raspberry Pi Connexion sans login ni mot de passe au Raspberry
Capteur de température DS18B20 Première installation et démarage Changer le Hostname du Raspberry Pi
Afficheurs 7 segments Création et execution d'un programme Python Connexion Ethernet Raspberry/ordinateur
Capteur distance HC-SR04 Connexion au bureau depuis Windows Connexion au Raspberry Pi en SSH
Interaction par bouton poussoir Test & tuto : Ecran LCD 7" tactile Communication série entre Arduino et Raspberry Pi
Servo Moteur Comparatif et test des kits Raspberry Pi 4
Capteur de présence HC-SR501
Module RFID-RC522
Caméra sur Raspberry Pi
Module L298N : Contrôle de moteurs à courant continu

EspaceRaspberryFrançais |
Contact | Facebook



En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.

Espace-raspberry-francais.fr est hebergé par SARL LWS.

Espace Raspberry Français - 2014 Textes soumis au droit d'auteur