Arduino UNO Q - Bouclier Moteur DC

Le Motor Shield Rev3 se branche directement sur les connecteurs de l'Arduino UNO Q — même disposition de broches que l'Uno classique. Dans ce guide, vous allez :

Arduino UNO Q Bouclier Moteur DC

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Motor Shield for Arduino
1×DC Motor
1×Power source (e.g., 9V power adapter)
1×Connecteur d'alimentation DC
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

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.

Vue d'Ensemble du Motor Shield Rev3

Au cœur du Motor Shield Rev3 se trouve le pilote double pont complet L298P. Cette puce vous donne un contrôle indépendant sur deux moteurs DC — chacun avec sa propre ligne de direction, ligne de vitesse PWM, ligne de frein et entrée analogique de détection de courant.

Voici ce que fait chaque ligne de contrôle :

  • Direction — une sortie numérique qui définit le sens de rotation. Mettre HIGH fait tourner dans un sens ; LOW dans l'autre.
  • PWM — une sortie analogique (PWM) qui définit le rapport cyclique. Les valeurs vont de 0 (arrêté) à 255 (pleine vitesse).
  • Frein — une sortie numérique. La mettre à HIGH bloque l'arbre du moteur ; à LOW le moteur tourne librement.
  • Détection de courant — une entrée analogique qui indique combien de courant le moteur consomme.

Comme l'Arduino UNO Q conserve les mêmes positions de connecteurs que l'Uno classique, chaque broche s'aligne automatiquement :

Fonction Canal A Canal B
Direction D12 D13
PWM (Vitesse) D3 D11
Frein D9 D8
Détection courant A0 A1

Alimentation des Moteurs

Les moteurs ont besoin de plus de courant que ce que l'USB peut fournir. Connectez une alimentation externe 6–12 V aux bornes à vis d'alimentation du bouclier. L'Arduino UNO Q lui-même continue de fonctionner depuis l'USB.

Schéma de Câblage

Placez le Motor Shield Rev3 sur les connecteurs de l'Arduino UNO Q en vous assurant que chaque broche s'insère correctement. Fixez les fils du moteur DC aux bornes à vis du Canal A. Connectez l'alimentation externe aux bornes à vis d'alimentation.

Schéma de Câblage Arduino UNO Q Bouclier Moteur DC

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

Moteur Unique sur le Canal A

Code MCU

L'Arduino UNO Q dispose de deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.

Le code ci-dessous alterne la direction du moteur toutes les 2 secondes avec freinage intermédiaire :

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-dc-motor-shield */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); bool directionState = false; void setup() { motor.begin(); } void loop() { directionState = !directionState; int direction = directionState ? MOTOR_FORWARD : MOTOR_BACKWARD; motor.run(direction, 30); delay(2000); motor.brake(); delay(2000); }

Étapes Rapides

  • Première utilisation de l'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
  • Empiler le bouclier : Pressez fermement le Motor Shield Rev3 sur les connecteurs de l'Arduino UNO Q.
  • Câblez le moteur : Connectez votre moteur DC aux bornes à vis du Canal A.
  • Connectez l'alimentation : Fixez l'alimentation externe aux bornes d'alimentation du bouclier.
  • Connecter : Branchez l'Arduino UNO Q sur votre ordinateur avec un câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : DIYables_DCMotorShield
  • Cliquez sur Créer pour confirmer.
  • Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le programme MCU.
  • Coller le programme : Copiez le code MCU ci-dessus et collez-le dans le fichier sketch. Laissez les autres fichiers par défaut.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for DIYables_DC_Motor created by DIYables.io and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    DIYables_DC_Motor DIYables.io

    Easy-to-use library for controlling DC motors via the Arduino Motor Shield Rev3 (L298P). Supports both Channel A and Channel B with direction control, PWM speed, brake, and current sensing. Custom pin assignments also supported.

    1.0.0
    Install
    More Info
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquer sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
    • Observer : Le moteur alterne entre avant et arrière toutes les 2 secondes, avec un freinage de 2 secondes entre chaque changement de direction.

    Référence Rapide des Méthodes

    Méthode Ce qu'elle fait Utilisation
    run(dir, speed) Fait tourner le moteur dans la direction donnée à la vitesse donnée motor.run(MOTOR_FORWARD, 100)
    setSpeed(speed) Change la vitesse sans toucher à la direction ou au frein motor.setSpeed(200)
    setDirection(dir) Change la direction sans toucher à la vitesse ou au frein motor.setDirection(MOTOR_BACKWARD)
    brake() Engage le frein et réduit la vitesse à zéro motor.brake()
    release() Désengage le frein motor.release()
    readCurrent() Retourne la valeur ADC brute de la broche de détection de courant motor.readCurrent()

    Moteur Unique sur le Canal B

    Comportement identique au Canal A, mais sur le Canal B — changez simplement la constante du canal.

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-dc-motor-shield */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_B); bool directionState = false; void setup() { motor.begin(); } void loop() { directionState = !directionState; int direction = directionState ? MOTOR_FORWARD : MOTOR_BACKWARD; motor.run(direction, 30); delay(2000); motor.brake(); delay(2000); }

    Étapes Rapides

    • Câblez le moteur aux bornes à vis du Canal B.
    • Suivez les mêmes étapes rapides que la section Canal A ci-dessus (créer l'application, coller le programme, installer les bibliothèques, téléverser).
    • Le moteur alterne de direction et freine de la même façon — seules les broches sous-jacentes diffèrent.

    Deux Moteurs — Les Deux Canaux

    Contrôlez deux moteurs indépendamment : tous les deux en avant, tous les deux en arrière, et dans des directions opposées.

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-dc-motor-shield */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motorA(MOTOR_CH_A); DIYables_DC_Motor motorB(MOTOR_CH_B); void setup() { motorA.begin(); motorB.begin(); } void loop() { // Both motors forward motorA.run(MOTOR_FORWARD, 100); motorB.run(MOTOR_FORWARD, 100); delay(2000); // Brake both motorA.brake(); motorB.brake(); delay(1000); // Both motors backward motorA.run(MOTOR_BACKWARD, 100); motorB.run(MOTOR_BACKWARD, 100); delay(2000); // Brake both motorA.brake(); motorB.brake(); delay(1000); // Opposite directions motorA.run(MOTOR_FORWARD, 100); motorB.run(MOTOR_BACKWARD, 100); delay(2000); // Brake both motorA.brake(); motorB.brake(); delay(1000); }

    Étapes Rapides

    • Fixez un moteur aux bornes à vis du Canal A et un autre au Canal B.
    • Suivez les mêmes étapes rapides que la section Canal A ci-dessus (créer l'application, coller le programme, installer les bibliothèques, téléverser).
    • Le programme enchaîne les séquences les deux en avant, les deux en arrière, et directions opposées.

    Programmation Bridge Linux + MCU

    L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre programme Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.

    • Le Motor Shield est connecté au MCU (STM32) — les broches de direction, PWM et frein sont toutes sur le connecteur Arduino UNO Q, pilotées par le STM32.
    • Le MPU ne peut pas contrôler le motor shield directement — il doit appeler une fonction sur le MCU via Bridge.call() pour faire tourner en avant, en arrière ou freiner.
    • Le MPU a le Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et contrôler le moteur à distance.
    • Communication : Bridge.call() côté Linux invoque Bridge.provide_safe() côté MCU (car motor.run() et motor.brake() utilisent des API matérielles)
    • ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement

    En résumé : Le MPU envoie la commande → le MCU pilote le Motor Shield → le Motor Shield contrôle le moteur DC.

    Programme MCU — contrôle du Motor Shield avec Bridge et sortie Moniteur :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-dc-motor-shield */ #include "Arduino_RouterBridge.h" #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); void motor_forward() { motor.run(MOTOR_FORWARD, 200); Monitor.println("Motor: Forward"); } void motor_backward() { motor.run(MOTOR_BACKWARD, 200); Monitor.println("Motor: Backward"); } void motor_brake() { motor.brake(); Monitor.println("Motor: Brake"); } void setup() { Bridge.begin(); Monitor.begin(); motor.begin(); motor.brake(); Bridge.provide_safe("forward", motor_forward); Bridge.provide_safe("backward", motor_backward); Bridge.provide_safe("brake", motor_brake); Monitor.println("DC Motor Shield Bridge ready"); } void loop() {}

    Script Python (Arduino App Lab) — contrôle du moteur depuis Linux :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-dc-motor-shield */ from arduino.app_utils import * import time def loop(): print("Motor spinning forward") Bridge.call("forward") time.sleep(3) print("Motor braking") Bridge.call("brake") time.sleep(1) print("Motor spinning backward") Bridge.call("backward") time.sleep(3) print("Motor braking") Bridge.call("brake") time.sleep(1) App.run(user_loop=loop)
    • Remarque : Assurez-vous que Bridge.begin() est appelé dans le programme MCU et que le programme est téléversé avant d'exécuter le script Python côté Linux.
    • ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sous Linux) ou n'utilisez pas Serial1 (sur MCU) dans votre code — ces ressources sont réservées par le routeur Arduino et y accéder briserait le Bridge.

    Étapes Rapides

    • Téléverser le programme MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le programme MCU Bridge dans sketch/sketch.ino, installez les bibliothèques DIYables_DC_Motor et Arduino_RouterBridge, et cliquez sur Exécuter.
    • Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
    • Exécuter l'application : Cliquez sur Exécuter — Python fait tourner le moteur en avant, freine, en arrière, freine automatiquement.
    • Vérifier la console : Ouvrez l'onglet Console → sous-onglet Moniteur MCU pour voir les messages d'état du moteur.

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    DC Motor Shield Bridge ready Motor: Forward Motor: Brake Motor: Backward Motor: Brake

    Intégration Telegram

    Contrôlez le moteur DC à distance depuis n'importe où via Telegram.

    Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.

    Programme MCU : Gardez le même programme MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.

    Script Python (Arduino App Lab) — bot Telegram pour contrôler le bouclier moteur :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-dc-motor-shield */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/forward": Bridge.call("forward") send_message(chat_id, "Motor spinning forward.") elif text == "/backward": Bridge.call("backward") send_message(chat_id, "Motor spinning backward.") elif text == "/brake": Bridge.call("brake") send_message(chat_id, "Motor braking.") else: send_message(chat_id, "Commands:\n/forward — spin motor forward\n/backward — spin motor backward\n/brake — brake motor") time.sleep(1) App.run(user_loop=loop)
    • Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
    • Envoyez /forward pour faire tourner le moteur en avant.
    • Envoyez /backward pour faire tourner le moteur en arrière.
    • Envoyez /brake pour freiner le moteur.

    Étapes Rapides

    • Téléverser le programme MCU : Utilisez le programme MCU Bridge de la section précédente (téléversez-le d'abord si ce n'est pas encore fait).
    • Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
    • Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
    • Exécuter l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram.
    • Tester : Envoyez /forward — le moteur tourne. Envoyez /brake — il s'arrête brutalement. Envoyez /backward — il fait marche arrière.

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /forward [2026-04-29 12:00:01] Motor spinning forward. [2026-04-29 12:02:10] Telegram: /backward [2026-04-29 12:02:10] Motor spinning backward. [2026-04-29 12:04:05] Telegram: /brake [2026-04-29 12:04:05] Motor braking.
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /forward
    10:15 AM ✓✓
    Motor spinning forward.
    10:16 AM
    /backward
    10:17 AM ✓✓
    Motor spinning backward.
    10:18 AM
    /brake
    10:19 AM ✓✓
    Motor braking.
    10:20 AM

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Idées d'Applications et de Projets

    • Robot télécommandé : Utilisez le Canal A et le Canal B ensemble pour construire un robot à entraînement différentiel à deux moteurs contrôlé via Telegram
    • Convoyeur automatisé : Faites avancer ou reculer un moteur Canal A selon un planning en utilisant le cron Linux du MPU
    • Curseur de caméra motorisé : Utilisez le contrôle précis de la vitesse PWM pour déplacer une caméra en douceur le long d'un rail
    • Plateau tournant à deux axes : Contrôlez deux moteurs simultanément pour des mouvements panoramique et inclinaison via des commandes Telegram
    • Contrôleur de ventilateur intelligent : Ajustez la vitesse du ventilateur à distance — définissez vitesse lente, moyenne ou maximale depuis Telegram

    Mettez-Vous au Défi

    • Facile : Ajoutez une commande Telegram /statut qui rapporte l'état actuel du moteur (avant, arrière ou freinage)
    • Moyen : Ajoutez une commande Telegram /vitesse <0-255> pour régler la vitesse PWM avant de faire tourner
    • Avancé : Contrôlez le Canal A et le Canal B indépendamment depuis Telegram en utilisant des commandes comme /a avant, /b arriere, /a frein

    Arduino UNO Q Bouclier Moteur DC - Démonstration Complète

    Voici un tutoriel vidéo étape par étape démontrant tous les exemples du bouclier moteur DC :

    Références des Fonctions

    Tutoriels connexes

    ※ 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 !