Réponse rapide

Empilez le shield driver moteur L293D sur un Arduino Uno, retirez le cavalier d'alimentation uniquement si vous alimentez la borne à vis du shield avec une alimentation moteur séparée, et connectez le servo à l'un des deux headers servo 5V. Si vous pilotez deux moteurs à courant continu depuis une alimentation de laboratoire et préférez une commande I2C, le contrôleur mLink L9110 est une alternative plus propre. Les étapes ci-dessous couvrent la construction standard du shield.

Ce que le shield L293D vous apporte réellement

Le Shield Motor Drive L293D pour Arduino est conçu pour vous aider à ajouter un contrôle moteur à vos projets. Il fournit deux interfaces pour servos 5V, connectées au timer dédié haute résolution d'Arduino, permettant un fonctionnement précis des servos. Il est compatible avec les cartes Arduino Uno ; la carte elle-même n'est pas incluse.

C'est cette combinaison qui rend ce shield populaire : deux canaux moteur DC plus deux connecteurs servo sur une seule carte, avec le timing des servos géré par un timer dédié plutôt que de bloquer votre boucle principale. L'inconvénient est que le L293D est un pilote bipolaire avec une chute de tension réelle, donc les moteurs nécessitant un courant élevé ou une très basse tension peuvent ne pas bien se comporter. Vérifiez le courant de blocage de votre moteur avant de vous engager.

Vérifiez votre moteur et votre alimentation avant de câbler quoi que ce soit

Deux chiffres déterminent si ce montage fonctionne : le courant de blocage du moteur et la tension d'alimentation. Le L293D chute d'environ 1.4 à 2 V à travers ses transistors internes, donc un moteur de 6 V sur une alimentation de 6 V sera lent. Prévoyez une alimentation de quelques volts au-dessus de la tension nominale du moteur et vérifiez que le courant par canal est dans les limites du pilote.

Si vos moteurs consomment plus de courant que le shield ne peut en fournir confortablement, ou si vous souhaitez un contrôle de vitesse avec 255 pas dans chaque direction via une liaison I2C simple, le contrôleur de moteur DC mLink L9110 mérite d'être considéré. C'est un pilote de moteur DC série (I2C) 2 canaux capable de piloter jusqu'à deux moteurs DC avec un courant maximal de 800 mA par moteur, avec un contrôle indépendant de la direction et de la vitesse.

Le cavalier d'alimentation : la seule chose que les gens font mal

Le cavalier d'alimentation du shield connecte le rail 5V de l'Arduino à l'alimentation logique du driver moteur. Avec le cavalier en place, le shield tire l'alimentation logique de l'Uno, et vous avez toujours besoin d'une alimentation séparée pour les moteurs via la borne à vis.

Retirez le cavalier uniquement lorsque vous alimentez la broche logique 5V du shield depuis une source externe régulée de 5V. Si vous le retirez et oubliez d'alimenter cette broche, le côté logique s'éteint et rien ne bouge, ce qui est le rapport de 'shield mort' le plus courant. Laissez-le en place pour un montage normal avec Uno.

  • Cavalier en place : logique depuis le rail 5V de l'Arduino, moteurs depuis la borne à vis.
  • Cavalier retiré : vous devez fournir vous-même du 5V régulé à la broche logique du shield.
  • N'appliquez jamais la tension du moteur sur la broche logique 5V.

Connecteurs servo et le timer dédié

Les deux interfaces servo 5V sont câblées au timer dédié haute résolution de l'Arduino, ce qui signifie que les impulsions du servo restent précises même lorsque votre sketch est occupé par d'autres tâches. C'est un avantage certain par rapport à la génération logicielle des impulsions servo, où la gigue se manifeste par des à-coups.

L'alimentation est le point crucial. Les servos peuvent tirer un courant de démarrage surprenant lorsqu'ils commencent à bouger, et le tirer du régulateur 5V de l'Uno peut faire planter la carte. Pour tout ce qui dépasse un petit micro-servo, alimentez le rail servo à partir d'une alimentation externe 5V et partagez la masse avec l'Arduino.

Terminer le montage proprement

Pour le câblage du moteur et de l'alimentation, un connecteur mâle d'alimentation DC de 2.1mm offre une fiche mâle soudable avec un diamètre intérieur de 2.1mm et une construction en plastique et métal, pratique lorsque vous souhaitez terminer un câble d'alimentation de laboratoire ou un bloc batterie sur la borne à vis du shield. Les soudures maintiennent la connexion sécurisée sous les vibrations, ce qui est important pour tout ce qui bouge.

Gardez les fils du moteur torsadés et courts, éloignez-les des lignes de signal du servo et ajoutez une masse commune entre l'Arduino et l'alimentation externe. Si un moteur tressaute mais ne tourne pas, suspectez l'alimentation ou le cavalier avant de réécrire le code.

Étape par étape : Montage du shield L293D

  1. 1. Faites correspondre le moteur au pilote : Consultez la tension nominale et le courant de blocage de votre moteur. Le L293D chute d'environ 1.4 à 2 V en interne, choisissez donc une alimentation de quelques volts au-dessus de la tension nominale du moteur et maintenez le courant par canal dans les limites du pilote. Si les chiffres ne correspondent pas, passez au mLink L9110, qui est conçu pour 800 mA par moteur. Point de contrôle : si vous ne trouvez pas de valeur de courant de blocage, mesurez-la ou choisissez un pilote avec une limite publiée.
  2. 2. Placez le shield sur l'Uno : Mettez l'Arduino hors tension, alignez les connecteurs du shield avec les broches de l'Uno et enfoncez-le complètement. Le shield est compatible avec les cartes Arduino Uno, et la carte n'est pas incluse, alors assurez-vous d'avoir un Uno et non une carte avec un brochage différent. Point de contrôle : un shield décalé d'une rangée de broches s'allumera souvent mais se comportera de manière erratique.
  3. 3. Déterminez l'état du cavalier d'alimentation : Laissez le cavalier en place pour une construction normale afin que le shield prenne l'alimentation logique du rail 5V de l'Arduino. Retirez-le uniquement si vous fournissez vous-même du 5V régulé à la broche logique du shield. Dans les deux cas, les moteurs reçoivent leur propre alimentation via la borne à vis. Erreur courante : retirer le cavalier puis se demander pourquoi la carte est morte. Si rien ne s'allume, remettez d'abord le cavalier.
  4. 4. Câblez l'alimentation moteur externe : Connectez votre alimentation moteur à la borne à vis du shield, en respectant la polarité. Utilisez un connecteur mâle d'alimentation CC 2.1 mm soudé si vous terminez une alimentation de laboratoire ou un câble de batterie, et reliez la masse de l'alimentation à la masse de l'Arduino. Point de contrôle : mesurez la tension aux bornes avant de connecter les moteurs, et n'appliquez jamais la tension moteur sur la broche logique 5V.
  5. 5. Branchez les deux moteurs à courant continu : Placez le moteur A sur la première paire de sortie et le moteur B sur la seconde. Si un moteur tourne dans le mauvais sens, inversez ses deux fils plutôt que de modifier le code, et gardez les fils courts et torsadés. Point de contrôle : testez un moteur à la fois afin qu'un défaut de câblage sur un canal ne masque pas l'autre.
  6. 6. Ajoutez le servomoteur : Branchez un servo 5V sur l'un des deux connecteurs servo, qui sont reliés au timer dédié haute résolution de l'Arduino pour un fonctionnement précis. Pour tout élément plus gros qu'un micro-servo, alimentez le rail servo depuis l'alimentation externe 5V plutôt que depuis le régulateur de l'Uno. Erreur courante : faire fonctionner un servo chargé depuis la broche 5V de l'Arduino et obtenir des réinitialisations aléatoires lorsqu'il bouge.
  7. 7. Téléchargez et vérifiez : Chargez un sketch qui fait avancer chaque moteur, puis reculer, puis balayer le servo. Surveillez la chute de tension sur le multimètre pendant que les moteurs tournent, et confirmez que le servo maintient sa position sans à-coups. Prochaine étape : si un canal se bloque sous charge, revoyez la tension d'alimentation et la marge de courant avant de toucher au code.

Pièces utilisées dans ce montage

  • Shield de commande moteur L293D pour Arduino: Shield de commande moteur L293D pour Arduino : deux interfaces servo 5V connectées au timer dédié haute résolution de l'Arduino ; compatible avec les cartes Arduino Uno (carte non incluse). Vous offre deux canaux moteur et deux connecteurs servo sur une carte empilable, avec une gestion temporelle du servo assurée par le matériel plutôt que dans votre sketch.
  • mLink L9110 Contrôleur de moteur CC: mLink L9110 Contrôleur de moteur : driver de moteur CC 2 canaux série (I2C), prenant en charge jusqu'à deux moteurs CC avec un maximum de 800mA par moteur, avec contrôle indépendant de la direction et de la vitesse sur 255 pas par direction. Un meilleur choix lorsque vous souhaitez un contrôle I2C ou que vous avez besoin de connaître le plafond de courant par moteur à l'avance plutôt que de l'estimer.
  • Connecteur mâle d'alimentation CC 2.1mm: 2.1mm Connecteur mâle d'alimentation CC : fiche mâle avec diamètre intérieur de 2.1mm, construction en plastique et métal, connexions à souder pour une fixation sécurisée, conçu pour les applications d'alimentation CC. Permet de terminer un câble d'alimentation ou de batterie sur la borne à vis du shield avec une jointure soudée résistante aux vibrations.