L’Arduino est incapable, seul, d’alimenter deux moteurs à courant continu. Nous devons donc passer par une carte de puissance, qui permettra de commander les deux moteurs dans les deux sens de rotation et à des vitesses pouvant varier entre 0 tr/min et la vitesse maximale du moteur.
Caractéristiques :
– Intensité MAX = 2A ;
– Tension d’alimentation : 5 à 30V
Câblage
–> Ne pas brancher directement l’alimentation électrique.
–> Souder les fils au moteur si ce n’est pas encore fait
–> Pendant les phases d’essais, nous n’utiliserons pas de pile 9V, mais je vous conseille d’utiliser une alimentation stabilisée.
Programmation
Conseil : Si vous mettez en place un robot, monté sur un châssis, je vous conseille de tester le programme en surélevant ce châssis, afin que les roues ne touchent pas le sol. Vérifier la rotation des roues, Il se peut qu’elle soit inversée. Dans ce cas inverser le câblage du ou des moteurs concernés.
Programme 1 : Faire tourner les moteurs à vitesse constante.
Ce programme permet de :
– Faire tourner les deux moteurs dans un sens pendant 2s ;
– Arrêter les moteurs pendant 1s ;
– Faire tourner les deux moteurs dans l’autre sens pendant 2s ;
– Arrêter les moteurs pendant 1s.
Programme 2 : Faire tourner les moteurs à différentes vitesses.
Il est possible de faire varier la vitesse de rotation des moteurs. Il faut donc utiliser des sorties PWM.
La variation de vitesse du moteur est gérée par la commande analogwrite.
La valeur qui est donnée ici par défaut est « 100 ». Cette valeur peut varier entre 0 et 255.
– 0 représente l’arrêt du moteur
– 255 la vitesse maximale du moteur.
Bonjour.
Je me demandais, est-il possible de contrôler deux moteur de calibre différents simultanément avec le module? C’est à dire un moteur 12V et moteur 5V par exemple.
Je ne pense pas, car le module possède une seule alimentation… Il est déconseillé d’alimenter du coup ton moteur de 5V en 12V…
Après, il est possible de moduler le signal vers le moteur de 5V à l’aide de la commande analogwrite…
Imaginons que pour 12V, nous envoyons la valeur 255… Pour obtenir 5V en sortie, il faut utiliser la valeur 106 :
// Marche Avant
analogWrite(Moteur_5V, 106);
digitalWrite(Moteur_5V, 0);
Bonjour, pouvez vous s’il vous plaît, envoyer les codes à télécharger.
Merci
Bien cordialement.
Philippe.
Les codes sont dans l’article, il suffit de les copier-coller dans le logiciel Arduino.
Bonjour je souhaite commander deux moteurs 12vDC dans les deux sens de rotation :
Moteur 1 fonctionne dans le sens de rotation normal pendant 3 sec avec en même temps le moteur 2 fonctionne dans le sens de rotation inverse pendant 3 sec
Est-ce possible avec le motorshield arduino L298P ?
Merci
Bonjour,
Bien entendu, vous pouvez faire tourner les moteurs en même temps. Il faut juste une alimentation compatible.
J’ai plug le motor shield L298P sur ma carte arduino UNO, j’ai mis une alimentation 12vDC 4A et j’arrive à faire tourner mes moteurs. Je ne sais en revanche inverser le sens des moteurs.
Pouvez-vous m’aider ?
Merci d’avance
// Pour M1 en marche avant
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
// Pour M2 en marche arrière :
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
J’ai plug le motor shield L298P sur ma arduino UNO, j’ai mis une alimentation 12vDC 4A sur le motor shield et j’arrive à faire tourner les moteurs dans un sens mais je n’arrive pas à changer le sens de rotation.
Pouvez-vous m’aider svp ?
Merci d’avance.
Merci, je vais essayer alors.
Quelle est la différence entre le L298N et le 298P ?
Je pense que c’est la forme de la puce : https://www.mouser.fr/datasheet/2/389/cd00000240-1795236.pdf (première image du document PDF)…
Mais c’est exactement le même composant
Bonjour ,je veux faire le même programme mais en utilisant le pic16f877a a la place de là carte arduino any help ?
Avec quoi programmez-vous ?
Bonjour,
pouvez-vous remettre un lien avec le programme, ou un PDF ?
merci
C’est bon !
Avez vous une astuce pour améliorer la vitesse du robot ?