Raspberry Pi Pico - moteur à courant continu

Dans ce guide, nous vous montrerons comment contrôler le moteur à courant continu en utilisant le Raspberry Pi Pico. Nous aborderons les détails suivants :

Moteur DC Raspberry Pi Pico

Préparation du matériel

1×Raspberry Pi Pico W
1×Raspberry Pi Pico Alternativement:
1×Câble Micro USB
1×Module pilote de moteur L298N
1×Moteur DC 5V
1×Adaptateur secteur 5V pour moteur DC 5V
1×Connecteur d'alimentation DC
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour Raspberry Pi Pico

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du moteur à courant continu

Brochage du moteur à courant continu

Un moteur à courant continu est livré avec deux fils.

  • Fil positif : généralement rouge
  • Fil négatif : généralement noir
Brochage du moteur à courant continu

Comment cela fonctionne

Lorsque vous achetez un moteur à courant continu, il est important de connaître la tension dont il a besoin. Par exemple, si vous avez un moteur à courant continu qui nécessite 12 volts, vous devez le connecter à une source d’alimentation de 12 volts.

  • Connectez le 12 V au fil positif et la masse au fil négatif pour faire tourner le moteur dans le sens des aiguilles d'une montre à pleine vitesse.
  • Connectez le 12 V au fil négatif et la masse au fil positif pour faire tourner le moteur dans le sens inverse des aiguilles d'une montre à pleine vitesse.

Lorsque vous échangez les connexions de deux fils sur le moteur à courant continu, comme expliqué précédemment, la façon dont il tourne changera. Cette méthode contrôle la direction de rotation du moteur à courant continu. Au lieu de faire cela manuellement, cela se fait par programmation.

Lorsque nous fournissons moins de 12 V aux moteurs à courant continu, ils fonctionnent toujours mais pas à leur vitesse maximale. Cela indique que la vitesse du moteur varie selon les tensions. Ajuster directement la tension peut être difficile en pratique. Par conséquent, une façon plus simple de contrôler la vitesse d'un moteur à courant continu est utilisée. Nous maintenons une tension constante fournie par l'alimentation et nous modifions la vitesse à l'aide d'un signal PWM (modulation de largeur d'impulsion). Le moteur tourne plus vite avec un rapport cyclique PWM plus élevé et plus lent avec un rapport plus faible.

Comment contrôler un moteur à courant continu

Comment contrôler un moteur à courant continu avec le Raspberry Pi Pico

Pour piloter un moteur à courant continu avec un Raspberry Pi Pico, vous devez gérer à la fois sa vitesse et sa direction de rotation. Le Raspberry Pi Pico génère un signal PWM qui n'est pas suffisamment puissant pour faire fonctionner le moteur tout seul. Par conséquent, vous avez besoin d'un pilote matériel qui relie le Raspberry Pi Pico au moteur à courant continu. Ce pilote a deux fonctions importantes :

  • Augmenter la puissance et la tension du signal PWM provenant du Raspberry Pi Pico pour contrôler la vitesse.
  • Obtenir le signal de commande du Raspberry Pi Pico pour basculer la polarité de l'alimentation afin de contrôler la direction.
Contrôle d'un moteur à courant continu avec Raspberry Pi Pico

※ Note:

  • Ce guide fonctionne pour tous les moteurs à courant continu. Ici, nous utilisons un moteur à courant continu de 12 V pour vous montrer comment.
  • Si vous utilisez un moteur à courant continu de 5 V, vous aurez besoin d'un pilote entre le Raspberry Pi Pico et le moteur, même si les deux fonctionnent en 5 V. La broche du Raspberry Pi Pico ne peut pas fournir suffisamment de courant pour faire fonctionner le moteur par elle-même.

Ce guide montrera comment utiliser le pilote L298N pour contrôler des moteurs à courant continu.

À propos du pilote L298N

Ce guide vous montrera comment piloter un moteur à courant continu en utilisant le pilote L298N.

Schéma de brochage du pilote L298N

Schéma des broches du pilote L298N

Le pilote L298N peut contrôler deux moteurs à courant continu distincts, appelés moteur A et moteur B, simultanément. Il dispose de 13 broches.

Les broches communes aux deux moteurs :

  • Broche VCC : fournit l'alimentation au moteur. La tension peut être comprise entre 5 et 35 V.
  • Broche GND : il s'agit d'une masse commune et doit être reliée à la masse (0 V).
  • Broche 5V : alimente le module L298N en utilisant le 5V fourni par un Raspberry Pi Pico.

Broches du moteur A (Canal A) :

  • Broches ENA : Elles déterminent la vitesse à laquelle le moteur A tourne. Pour changer la vitesse, retirez le cavalier et connectez la broche à une entrée PWM.
  • Broches IN1 et IN2 : Elles déterminent dans quelle direction le moteur A tourne. Si l'une des broches est à un niveau logique élevé et l'autre à un niveau logique faible, le moteur A tournera. Si les deux broches sont à un niveau logique élevé ou faible, le moteur A ne tourne pas.
  • Broches OUT1 et OUT2 : Elles sont reliées au moteur A.

Broches du moteur B (Canal B) :

  • Broches ENB : Celles-ci ajustent la vitesse du moteur B. Enlevez le cavalier et connectez ces broches à une entrée PWM pour contrôler la vitesse du moteur B.
  • Broches IN3 et IN4 : Elles déterminent la direction de rotation du moteur B. Le moteur B tourne lorsque IN3 est au niveau élevé et IN4 est au niveau faible, ou inversement. Si les deux sont au niveau élevé ou les deux au niveau faible, le moteur B ne tourne pas.
  • Broches OUT3 et OUT4 : Ces broches se connectent au moteur B.

Le pilote L298N dont nous avons déjà parlé utilise deux types d'alimentation d'entrée :

  • Un pour le moteur à courant continu (broches VCC et GND) : entre 5 et 35 V.
  • Un pour le fonctionnement du module L298N (broches 5V et GGD) : entre 5 et 7 V.

Le driver L298N comprend trois cavaliers pour les fonctions avancées. Pour simplifier, retirez tous les cavaliers du driver L298N.

Vous pouvez piloter deux moteurs à courant continu simultanément avec un Raspberry Pi Pico et un pilote L298N. Pour gérer chaque moteur, vous devez connecter trois broches du Raspberry Pi Pico.

※ Note:

Ce guide vous expliquera comment contrôler un moteur à courant continu en utilisant le canal A. Vous pouvez contrôler un autre moteur à courant continu de la même manière.

Diagramme de câblage

Avant de commencer le câblage, retirez les trois cavaliers du module L298N.

Schéma de câblage du pilote L298N pour moteur à courant continu avec Raspberry Pi Pico

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment contrôler la vitesse d'un moteur à courant continu via le pilote L298N

Vous pouvez ajuster la vitesse du moteur à courant continu en envoyant un signal PWM sur la broche ENA du L298N. Voici comment procéder :

  • Relier une broche du Raspberry Pi Pico à la broche ENA du module L298N.
  • Utilisez la fonction ena.duty_u16() pour envoyer un signal PWM à la broche ENA. Le pilote L298N amplifiera ensuite ce signal PWM pour contrôler le moteur à courant continu.
ena.duty_u16(int(speed * 65535 / 255)) # Définir la vitesse du moteur sur ENA_PIN, plage 0-255

La vitesse peut être réglée entre 0 et 255. À 0, le moteur ne bougera pas. À 255, le moteur se déplacera à sa vitesse maximale.

Comment contrôler la direction d'un moteur à courant continu via le pilote L298N

Vous pouvez changer le sens de rotation d'un moteur en ajustant les broches IN1 et IN2 sur HIGH ou LOW. Le tableau ci-dessous explique comment contrôler la direction pour les deux canaux.

IN1 pin IN2 pin Direction
LOW LOW Motor A stops
HIGH HIGH Motor A stops
HIGH LOW Motor A spins Clockwise
LOW HIGH Motor A spins Anti-Clockwise
  • Le moteur A tourne à droite.
in1.value(1) in2.value(0)
  • Le moteur A tourne dans le sens opposé à celui des aiguilles d'une montre.
in1.value(0) in2.value(1)

※ Note:

Si vous inversez les connexions des broches OUT1 et OUT2 avec les broches du moteur à courant continu, le moteur tournera dans l’autre sens. Pour corriger cela, inversez les broches OUT1 et OUT2, ou modifiez les signaux de commande des broches IN1 et IN2 dans le code du programme.

Comment arrêter la rotation d'un moteur à courant continu

Il existe trois façons d'éteindre un moteur à courant continu.

  • Réglez la vitesse à zéro.
ena.duty_u16(0) # Définir la vitesse du moteur à 0
  • Met les broches IN1 et IN2 à l'état bas.
in1.value(0) in2.value(0)
  • Place les broches IN1 et IN2 à l'état haut.
in1.value(1) in2.value(1)

Comment contrôler un moteur à courant continu en utilisant le pilote L298N.

Code du Raspberry Pi Pico

Le code ci-dessous effectue les actions suivantes :

  • Accélérer le moteur à courant continu
  • Changer la direction
  • Ralentir le moteur à courant continu
  • Arrêter le moteur
/* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/raspberry-pico/raspberry-pi-pico-dc-motor */ from machine import Pin, PWM from time import sleep # Define pins ENA_PIN = 27 # The Raspberry Pi Pico pin GP27 connected to the ENA pin of L298N IN1_PIN = 29 # The Raspberry Pi Pico pin GP29 connected to the IN1 pin of L298N IN2_PIN = 19 # The Raspberry Pi Pico pin GP19 connected to the IN2 pin of L298N # Initialize pins ena = PWM(Pin(ENA_PIN)) # PWM for speed control ena.freq(1000) # Set frequency to 1kHz for PWM in1 = Pin(IN1_PIN, Pin.OUT) in2 = Pin(IN2_PIN, Pin.OUT) def set_motor_speed(speed): ena.duty_u16(int(speed * 65535 / 255)) # Convert 0-255 speed to 0-65535 for PWM def motor_forward(): in1.value(1) in2.value(0) def motor_backward(): in1.value(0) in2.value(1) def motor_stop(): in1.value(0) in2.value(0) while True: motor_forward() for speed in range(256): set_motor_speed(speed) sleep(0.01) sleep(1) motor_backward() sleep(1) for speed in range(255, -1, -1): set_motor_speed(speed) sleep(0.01) motor_stop() sleep(1)

Étapes rapides

Veuillez suivre ces instructions étape par étape :

  • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
  • Assurez-vous que le micrologiciel MicroPython est installé sur votre Raspberry Pi Pico.
  • Si c'est la première fois que vous utilisez un Raspberry Pico, reportez-vous au tutoriel Raspberry Pi Pico - Premiers pas. pour obtenir des instructions détaillées.
  • Retirez les trois cavaliers du module L298N.
  • Connectez le Raspberry Pi Pico au moteur DC via le module L298N selon le schéma fourni.
  • Connectez le Raspberry Pi Pico à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Thonny sur votre ordinateur.
  • Dans l'IDE Thonny, sélectionnez l'interpréteur MicroPython (Raspberry Pi Pico) en naviguant vers Outils Options.
  • Dans l'onglet Interpréteur, sélectionnez MicroPython (Raspberry Pi Pico) dans le menu déroulant.
  • Assurez-vous que le bon port est sélectionné. L'IDE Thonny devrait détecter automatiquement le port, mais vous devrez peut-être le sélectionner manuellement (par exemple COM3 sous Windows ou /dev/ttyACM0 sous Linux).
  • Copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Thonny.
  • Enregistrez le script sur votre Raspberry Pi Pico en procédant comme suit :
    • Cliquez sur le bouton Enregistrer, ou utilisez les touches Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, vous verrez deux sections: Cet ordinateur et Raspberry Pi Pico. Sélectionnez Raspberry Pi Pico
    • Enregistrez le fichier sous main.py
  • Cliquez sur le bouton vert Lancer (ou appuyez sur F5) pour exécuter le script. Le script s'exécutera.
  • Observations :
    • Le moteur DC accélère, puis tourne à vitesse maximale pendant 1 seconde.
    • La direction du moteur DC change.
    • Le moteur DC tourne à vitesse maximale pendant 1 seconde en sens inverse.
    • Le moteur DC ralentit.
    • Le moteur DC fait une pause de 1 seconde.
    • Ce cycle se répète sans cesse.

    ※ Note:

    Dans ce guide, nous apprendrons comment modifier la vitesse d'un moteur à courant continu par rapport à sa vitesse maximale. Pour gérer la vitesse exacte en tours par seconde, nous devons utiliser un contrôleur PID et un encodeur. Nous discuterons de la façon de contrôler la vitesse exacte du moteur à courant continu dans un autre guide.

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !