Moteur DC sur port analogique

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour, j'ai actuellement: une carte arduino uno rev3 et un petit moteur dc 2v, mais pas de servomoteurs (en cours d'expédition).
J'aimerai, mais je ne sais pas si c'est possible, faire varier la vitesse de mon moteur, grâce à des voltages changeant, grâce aux ports analogiques, et ça sans shield motor.
Ma question est: est-ce possible? Car je n'ai trouvé aucun tutoriels dans ce domaine, seulement avec des servos…
Merci d'avance

Version ultra simple : analogWrite te sort un PWM sur la bonne PIN, tu vas pouvoir moduler la vitesse entre 0 et le maximum possible que ta carte peut donner.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
const int MOTOR = 9;

void setup()
{
  pinMode(MOTOR, OUTPUT);
}
void loop()
{  analogWrite(MOTOR,64);  //slow
  delay(2000);
  analogWrite(MOTOR,128);  //medium
  delay(2000);
  analogWrite(MOTOR,255);  //fast
  delay(2000);
  digitalWrite(MOTOR,0);
  delay(2000);}

Apres, tu ne peux le faire tourner que dans un seul sens. SI tu veux un truc plus évolué, regarde du coté des composants type L293D par exemple

+0 -0

Attention, les pin avec Ax, c'est des entrées ;) Toi, tu cherches à commander une sortie avec une tension variable. Il faut donc utiliser le PWM et le pin 9 le permet :)

Attention aussi à la puissance de ton moteur, et donc au courant qu'il va appeler. L'arduino est limité à 40 mA de mémoire, soit en ce qui te concerne $P=UI$ donc $P=2\times0.04$ soit $P=0.08W$

Par ailleurs, ton moteur ne supporte pas 5V mais 2V seulement. A mon sens, il faut nécessairement une interface entre la commande de ton Arduino, et la puissance de ton moteur. C'est le rôle des shield moteur. Ceci dit, ça doit se fabriquer. Tu n'es pas forcé de l'acheter. De plus, c'est formateur :)

Édité par bendia

+0 -0

Super merci :) j'ai compris ;) (bon mon moteur tient bien la route, il résiste même à de 9v sans problème)

mattis25

Sans encore de problèmes. Par ailleurs, le risque ici est autant pour ton Arduino que pour ton moteur.

Edit : un exemple de schéma pour commander un moteur. Il est 9V, mais sur le principe, c'est la même chose.

Edit2 : avec un lien qui fonctionne, c'est mieux ;)

Édité par bendia

+0 -0

Yep, piloter un moteur avec une arduino sans shield/transistor est une mauvaise idée. LEs broches de l'Arduino ne sont pas faites pour sortir du courant suffisant pour le moteur. Dans le meilleur des cas le moteur ne bougera pas, dans le pire des cas tu vas faire tourner le moteur sans diode de roue libre et cramer ta sortie en lui envoyant un courant.

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte