Arduino Mega - Shield moteur CC
Vous avez un Arduino Mega et vous voulez faire tourner des moteurs ? Le Motor Shield Rev3 est votre chemin le plus rapide de l'ouverture de la boîte à la rotation. Les connecteurs du Mega sont rétrocompatibles avec le brochage standard de l'Uno, donc le shield s'emboîte directement — et avec la bibliothèque DIYables_DC_Motor vous pouvez commencer à écrire du code de contrôle de moteur en quelques minutes.
Ce guide étape par étape couvre :
- Le montage du Motor Shield Rev3 sur l'Arduino Mega.
- La connexion d'un moteur CC et de batteries externes.
- Commander la direction du moteur — avant ou arrière.
- Régler la vitesse du moteur avec PWM (0-255).
- Activer et désactiver le frein électronique.
- Échantillonner le courant circulant dans le moteur.
- Faire fonctionner une paire de moteurs sur le Canal A et le Canal B simultanément.
Le Mega apporte des E/S supplémentaires, plus de SRAM et des ports série matériels supplémentaires — pratique lorsque votre projet doit communiquer avec des capteurs ou un écran en plus du contrôleur de moteur.

Matériel requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Comprendre le Motor Shield Rev3
Le shield embarque un pilote double pont en H L298P — un seul circuit intégré capable d'alimenter deux canaux de moteur CC indépendants. Chaque canal expose quatre signaux de contrôle :
| Signal | Purpose |
|---|---|
| Direction | Broche numérique - HAUT pour un sens de rotation, BAS pour l'autre |
| PWM | Broche analogique (PWM) - rapport cyclique de 0 (arrêt) à 255 (maximum) |
| Brake | Broche numérique - HAUT active le frein, BAS le désactive |
| Current Sensing | Broche analogique - tension proportionnelle au courant du moteur |
Sur le Mega, ces signaux se trouvent sur les mêmes broches physiques que sur l'Uno :
| Function | Channel A | Channel B |
|---|---|---|
| Direction | D12 | D13 |
| PWM (Speed) | D3 | D11 |
| Brake | D9 | D8 |
| Current Sensing | A0 | A1 |
Toutes les autres broches du Mega restent libres pour vos autres périphériques.
Besoins en alimentation
Les moteurs CC sont gourmands — ils tirent beaucoup plus de courant que ce que l'USB peut fournir. Attachez un pack de batteries 6-12 V aux bornes à vis d'alimentation du shield. Le Mega continue à fonctionner depuis l'USB indépendamment.
Schéma de câblage
Alignez le shield avec les connecteurs du Mega et appuyez fermement jusqu'à ce que chaque broche soit bien en place. Connectez les fils du moteur CC aux bornes à vis Canal A (étiquetées sur le PCB). Ensuite, câblez votre pack de batteries aux bornes d'alimentation.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Installation de la bibliothèque
- Connectez votre Arduino Mega à l'ordinateur via un câble USB.
- Ouvrez l'Arduino IDE. Choisissez Arduino Mega ou Mega 2560 comme carte et sélectionnez le bon port.
- Allez dans le panneau Bibliothèques sur le côté gauche.
- Recherchez « DIYables_DC_Motor ». Trouvez l'entrée de DIYables.
- Appuyez sur Installer.

La bibliothèque n'a aucune dépendance externe.
Squelette de code
Le minimum pour faire tourner un moteur :
begin() configure les modes de broche et active le frein. run() choisit une direction, désactive le frein et applique PWM. brake() verrouille l'arbre et met le PWM à zéro. C'est tout le flux de contrôle.
Exemple - Canal A
Faire tourner un moteur sur le Canal A, en changeant de direction à chaque cycle.
Étapes pour téléverser
- Montez le shield sur le Mega et câblez le moteur au Canal A.
- Branchez le pack de batteries et le câble USB.
- Collez le code dans l'Arduino IDE, sélectionnez la carte et le port, et appuyez sur Téléverser.
- Ouvrez le Moniteur Série (9600 bauds) pour voir la sortie d'état.
Le moteur devrait tourner dans un sens pendant deux secondes, s'arrêter pendant deux secondes, inverser pendant deux secondes, et répéter.
API en un coup d'œil
| Method | Effect | Sample Call |
|---|---|---|
| run(dir, speed) | Direction + speed in one shot; auto-releases brake | motor.run(MOTOR_FORWARD, 100) |
| setSpeed(speed) | Adjusts PWM (0-255) only | motor.setSpeed(200) |
| setDirection(dir) | Flips direction only | motor.setDirection(MOTOR_BACKWARD) |
| brake() | Full stop - brake on, PWM off | motor.brake() |
| release() | Brake off | motor.release() |
| readCurrent() | Raw ADC from the sensing pin (-1 if unavailable) | motor.readCurrent() |
Exemple - Canal B
La même logique, canal différent.
Étapes pour téléverser
- Déplacez les fils du moteur vers le Canal B.
- Téléversez et ouvrez le Moniteur Série.
Le seul changement de code est la constante de canal.
Exemple - Fonctionnement double moteur
Contrôlez deux moteurs à la fois, en alternant entre des patterns synchronisés et opposés.
Étapes pour téléverser
- Connectez un moteur au Canal A et un deuxième moteur au Canal B.
- Téléversez et regardez le Moniteur Série.
Le programme fait fonctionner les deux moteurs en avant, puis tous les deux en arrière, puis dans des directions opposées — avec une pause de freinage entre chaque phase.
Exemple - Surveillance du courant
Lisez la broche de détection de courant pendant que le moteur tourne.
Étapes pour téléverser
- Connectez un moteur au Canal A.
- Téléversez, ouvrez le Moniteur Série et observez les lectures ADC se mettre à jour toutes les demi-secondes.
Détails de la détection de courant
Les broches A0 (Canal A) et A1 (Canal B) produisent une tension proportionnelle au courant du moteur. Sur le CAN 10 bits du Mega, la plage est de 0 à 1023. Multipliez par le facteur mV-par-ampère documenté du shield pour convertir en courant réel.
Exemple - Mappage de broches personnalisé
Remplacez les broches par défaut lorsque votre matériel s'écarte de la disposition standard du shield.
Étapes pour téléverser
- Modifiez les arguments du constructeur pour correspondre à votre câblage réel.
- Téléversez et testez.
Problèmes courants et solutions
| Symptom | Likely Cause | Fix |
|---|---|---|
| Le moteur ne bouge pas | Mauvais canal sélectionné dans le code | Faites correspondre MOTOR_CH_A / MOTOR_CH_B à la borne à vis utilisée |
| Le moteur tourne à peine | Valeur PWM trop faible | Essayez une vitesse plus élevée - commencez avec 100 |
| Le moteur tourne mais pas de lecture de courant | Constructeur 3 broches utilisé (pas de détection) | Utilisez le constructeur de canal ou le constructeur 4 broches |