Arrow Electronic Components Online

Contrôle simple de la vitesse d'un moteur à courant continu avec PWM

Commandes de moteur23 mars 2023
Un microcontrôleur Raspberry Pi Pico est connecté à un circuit sur une plaque d'essai, contrôlant un petit moteur à courant continu.
Voir tous les articles

Par : Jeremy Cook

Une des opérations les plus fondamentales en électronique est le contrôle de la vitesse d'un moteur à courant continu. Ici, nous examinerons ce que cela signifie à partir des bases : l'envoi d'un signal PWM à un MOSFET ou à un pilote dédié. Ce signal contrôle directement la vitesse du moteur à courant continu, en utilisant des courants (et souvent des tensions) plus élevés que ceux que le contrôleur peut produire lui-même.

Contrôle PWM simple pour LED

A blue handheld oscilloscope is shown capturing waveforms from a small electronic circuit on a white breadboard.

Jeremy Cook | LED externe avec impulsions indiquées par l'oscilloscope

La PWM (c'est-à-dire, modulation de largeur d’impulsion) simule une sortie de tension analogique en répétant des impulsions de différentes longueurs de temps. Dans cette configuration, la période est définie comme le temps nécessaire pour qu'un cycle marche/arrêt soit complet. Le cycle de service, souvent exprimé en pourcentage, est le rapport entre le temps de marche et le temps d'arrêt.
 
Un signal de cinq volts avec un cycle de service de 50 % donnerait un signal analogique simulé de 2,5 V. Une période de 1 ms produirait ce changement d'état marche/arrêt 1000 fois par seconde (ou 1000 Hz), défini comme la fréquence du signal PWM. Le contrôle PWM fonctionne bien avec les moteurs à courant continu et d'autres charges changeant lentement. Une vraie sortie analogique est préférable dans différentes situations, comme la reproduction audio.
 
Nous utiliserons le Raspberry Pi Pico exécutant CircuitPython pour explorer ce principe et générer des signaux PWM. Pour une très brève introduction, chargez le code trouvé ici. Ce code fera alterner la LED embarquée à pleine puissance, soit 65 535 (2^16 – 1), à 4095 (2^12 -1), moins d'un dixième de la valeur originale. On peut observer le changement de lumière, bien qu'il puisse être difficile de corréler la sortie de lumière observée avec la valeur numérique.

Circuit de commande de moteur MOSFET

This schematic diagram features a Raspberry Pi Pico microcontroller connected to a simple DC motor driver circuit.

Jeremy Cook | Circuit de commande de moteur à courant continu MOSFET

La méthodologie de contrôle utilisant un MOSFET (FQP30N06L) est essentiellement la même que pour une LED. Le code pour notre prochaine expérience se trouve ici. Connectez la sortie de contrôle à la broche de gain du MOSFET via une petite résistance (~100Ω). Ajoutez une résistance de 10k à la masse pour la tirer vers le bas lorsqu'aucune entrée n'est présente. Le fil positif du moteur se connecte au drain du MOSFET, tandis que la source du MOSFET est connectée à la masse.
 
La broche VBUS fournissait initialement la tension positive ; cependant, utiliser une source de tension externe reliée à une masse commune avec le Pico serait généralement préférable. Il serait également conseillé d'implémenter une diode de roue libre pour gérer les charges inductives parasites.

Pilote de moteur L293D : Une façon plus simple de construire un circuit de contrôle de moteur CC

A Raspberry Pi Pico microcontroller is connected on a white breadboard alongside a small DC motor.

Jeremy Cook | Légende : L293D Motor Driver

MOSFETs sont d'excellents dispositifs polyvalents, mais si vous souhaitez contrôler la vitesse et la direction — ou si vous avez plus d'un moteur à gérer — les choses se compliquent très rapidement. Heureusement, des contrôleurs de moteur IC prêts à l'emploi sont disponibles pour relever ce défi, y compris le célèbre pilote L293D utilisé ici. Les besoins en câblage peuvent être déterminés à partir de la fiche technique. La méthode que j'ai utilisée pour le connecter à mon Raspberry Pi Pico est schématisée ci-dessous :

This schematic shows a Raspberry Pi Pico microcontroller connected to an L293D motor driver IC.

Jeremy Cook | Broches U4 GND connectées en interne

Le code de rotation numérique (marche/arrêt) pour cette configuration se trouve ici, ce qui permet au moteur d'avancer et de reculer à pleine puissance, avec des pauses entre chaque mouvement. Ce code PWM initialise le moteur à un cycle de service spécifique, l'accélère progressivement, puis l'arrête. Il accélère ensuite dans l'autre sens et s'arrête à nouveau avant de répéter la séquence.

Un mot de prudence concernant le pilote L293D

En utilisant ce dernier morceau de code (avec une entrée VCC2 de 12V et sans condensateur), j'ai fini par désactiver une carte Raspberry Pi Pico. Une bonne pratique aurait été d'utiliser des condensateurs pour équilibrer les entrées de puissance et de logique. Le L293D offre des capacités de clampage interne pour s'occuper des charges inductives, donc aucun diodes de roue libre externes n'aurait dû être nécessaire. Il y a plusieurs coupables potentiels quant à la manière dont cela s'est produit, mais cela devrait servir de rappel pour s'assurer que le matériel est spécifié et mis en œuvre pour répondre aux exigences du monde réel une fois qu'il quitte le banc.

Prêt à l'emploi – ou personnalisation complète ?

Vos conceptions de circuits de commande de moteur CC ne resteront probablement pas sur une plaquette de prototypage pour toujours. À partir d'ici, deux chemins divergents s'offrent à vous :
 
Pour des prototypes plus avancés ou des conceptions uniques, des boucliers de moteur et des cartes de développement sont disponibles, ajoutant des pilotes comme le L293D en tant que solution plug-and-play pour les moteurs CC, les moteurs pas à pas, les servomoteurs, et plus encore. Le Arduino Motor Shield est peut-être le plus connu et est compatible avec le format Arduino Uno. Si vous souhaitez rester sur la plateforme RP2040, le Maker Pi RP2040 pourrait être une excellente solution plug-and-play pour contrôler les moteurs et autres dispositifs.
 
À l'autre extrémité du spectre, il est possible d'intégrer des conceptions de contrôleurs de moteur directement dans votre propre conception de circuit imprimé. Cette intégration vous offre une liberté de conception quasi infinie, vous permettant, par exemple, d'implémenter certaines des fonctionnalités du Maker Pi RP2040 tout en omettant ce dont vous n'avez pas besoin. Vous pouvez également disposer votre carte dans le format physique parfait pour votre application.

A Raspberry Pi Pico microcontroller is connected to a breadboard circuit alongside a JF-0530B solenoid.

Jeremy Cook | MOSFET pour moteur électrique et autre contrôle de charge. Comme le solénoïde agit comme une inductance, une diode de roue libre aurait quand même été une bonne idée.

Les principes généraux de contrôle PWM présentés ici sont solides et peuvent être utilisés pour une variété de charges; cependant, le matériel présenté a été rapidement assemblé comme une démonstration pour cet article. Pour les conceptions finales, vous voudrez prendre en compte chaque situation particulière, ainsi que les spécifications et les informations des fiches techniques disponibles sur Arrow. Votre appareil peut fonctionner sans problème pendant des années avec une configuration correcte de contrôleur de moteur DC PWM.
 
Quoi qu'il advienne de votre conception, Arrow est là pour fournir les microcontrôleursMOSFETspilotes de moteur, et autres dispositifs nécessaires pour réaliser votre contrôleur de vitesse de moteur DC PWM !

Étiquettes d'article

Mondial
Article
Contrôle des moteurs
Moteurs

Contenu connexe