Circuit débutant ne fonctionne pas ?

Bonjour,

Je suis débutant sur Arduino et nouveau sur le forum :).

J'explique mon soucis;
J'ai fais un simple circuit qui permet de faire tourner le moteur gauche et allumer la led gauche 2 secondes, puis les éteindre, faire la même chose pour la droite. Et ça doit boucler comme ça.

Avec une simulation sur 123d.circuits.io ça marche parfaitement. Mais en vrai, lorsque je le fais les leds s'allument et s'éteignent bien mais les moteur ne réagissent pas.

Je tient à préciser que quand je branche les moteurs sur du 5V directement, ils tournent bien.

J'ai mis une capture de mon circuit en PJ et voici mon code :

int delai = 2000;

int roueGauche = 13;
int ledGauche = 7;
int roueDroite = 12;
int ledDroite = 9;

void setup(){
    pinMode(roueGauche,OUTPUT);  
    //pinMode(ledGauche,OUTPUT);
    pinMode(roueDroite,OUTPUT);  
    //pinMode(ledDroite,OUTPUT);  
}

void loop(){
  pivoterGauche();
  
  pivoterDroite();
}

void pivoterDroite(){
  digitalWrite(roueGauche, HIGH);
  digitalWrite(ledGauche, HIGH);
  delay(delai);
  digitalWrite(roueGauche, LOW);
  digitalWrite(ledGauche, LOW);
}

void pivoterGauche(){
  digitalWrite(roueDroite, HIGH);
  digitalWrite(ledDroite, HIGH);
  delay(delai);
  digitalWrite(roueDroite, LOW);
  digitalWrite(ledDroite, LOW);
}

Merci de m'aider :slight_smile:

On ne peut pas brancher un moteur directement sur les sorties de l'Arduino. Tu vas le tuer en faisant ça.
Un moteur consomme trop de courant pour être connecté ainsi.
A minima, il faut utiliser un transistor en interface entre le moteur et l'Arduino.
http://pighixxx.com/PNG/160.png

Merci pour ta réponse.
En prenant compte de ce que tu m'as dis, j'ai fais une petite recherche sur Youtube. Et ça disait la même chose que toi. Comme solution il parle du transistor mais aussi du L293D.
Confirmes-tu ?

J'ai passé commande d'un L293D il y a deux semaines, il devrait arriver cette semaine, ça tombe bien 8).

Le transistor, c'est le plus simple et tu ne peux commander le moteur que dans un seul sens.
Avec le L293D, tu peux piloter le moteur dans les 2 sens.

Ou l298

Oui et bien c'est ce que je veut faire; faire tourner les moteurs dans les deux sens.
Une nouvelle fois merci pour les réponses, mes pièces sont pas encore arrivées :frowning:

Bonjour les Copains,

Hé bé, Il est miraculeux ton programme !
En effet, les deux instructions qui font passer les broches de pilotage des LED en sorties sont en remarque … et le programme fonctionne ?

Ce n’est qu’un détail, qui ici ne changera pas le comportement de ton programme. Mais quand tu déclares des constantes ou des variables dont la valeur fait moins de 256, prend le reflexe de choisir byte comme type au lieu de int, c’est plus pertinent car :
• On voit immédiatement que la valeur attendue sera comprise entre 0 et 255,
• Si c’est une variable elle consommera deux fois moins de place en RAM et son traitement sera deux fois plus rapide.

Autre suggestion : Le circuit intégré spécialisé va résoudre le problème de la commutation électrique sur ton moteur. Mais il me semble plus judicieux avant chaque changement de sens de couper l’alimentation du moteur durant un petit délai, il sera « moins bousculé ».
Amicalement : Nulentout.

Bonjour nulentout,

J'ai oublié d'enlever les commentaires avant de poster, je devais surement faire des tests :).
Merci pour le type byte que je ne connaissais pas et pour l'astuce du moteur ;).

J'ai enfin reçu mes L293D.. Encore un ptits soucis ..
J'ai bien branché comme il faut le L293D, mais les moteurs tournent que TRES lentement (je dois presque les entrainer pour qu'elle roulent un peu).. Je ne sais pas quoi faire ?

EDIT : Avec un petit multimetre, je vois qu'il y a du 4.6V sur ma breadboard et 1.5V en sortie du L293D.. Ca peut être quoi selon vous ? J'ai déjà essayé un autre L293D

Mon circuit est en PJ.. (ne prenez compte que le L293D, les deux moteurs, et la carte ^^')

Peut-être parce qu'il me manque une source 9V comme ici ?

Jdois forcément avoir deux sources ?