Contrôler des moteurs avec un Arduino est plus compliqué que contrôler de simples LEDs pour 2 raisons. Premièrement, les moteurs nécessitent plus de courant que ce que peuvent fournir les broches de sortie de l'Arduino, ensuite, les moteurs sont capables de générer leur propre courant grâce à un processus appelé l'induction, ce qui peut endommager votre circuit si vous n'avez pas tenu compte de cette spécificité. Cependant, les moteurs permettent de mettre en mouvement des objets physiques, rendant vos projets beaucoup plus excitant. Cela vaut bien quelques difficultés!

Mettre en mouvement des choses consomme beaucoup d'énergie. Les moteurs nécessitent généralement plus de courant que ce que l'Arduino peut fournir. Certains moteurs nécessitent aussi une tension plus élevée. Pour commencer à tourner, en particulier quand il a une charge lourde attachée, un moteur consommera autant de courant que possible. L'Arduino ne peut fournir 40 milliampères (mA) à partir de ses broches numériques, beaucoup moins que ce que la plupart des moteurs ont besoin pour travailler.




Les transistors sont des composants qui vous permettent de contrôler les sources d'alimentation courant et tension élevée à partir des sorties à faible courant de l'Arduino.




Les moteurs sont des dispositifs de type inductif. L'induction est un processus par lequel la variation du courant électrique dans un fil entraîne une variation du champ magnétique autour de ce fil







schémas de cablage :




11)      Branchez l'alimentation et la masse à votre platine d'expérimentation à partir de l'Arduino
22)      Ajoutez un bouton poussoir à la carte, en connectant un côté à l'alimentation et l'autre côté à la broche numérique 2 de l'Arduino. Ajouter une résistance "pull-down" de 10 kW entre la masse et la broche de l'interrupteur connectée à l'Arduino.
33)      Lorsque vous utilisez des circuits avec différentes tensions, vous devez vous connecter leur masse ensemble pour créer une masse commune. Branchez le connecteur de pile 9V à la platine d'expérimentation. Connectez la masse de la pile (pole -) à la masse de votre Arduino sur la platine d'expérimentation avec un cavalier, comme le montre la Fig. 1. Ensuite, brancher l'autre borne de la pile (pole +) au 9V sur la platine d'expérimentation.
44)      Placez le transistor sur la carte. Placez le composant de sorte que la languette métallique est face à vous, à l'opposé de l'Arduino. Connectez la broche numérique 9 à la broche à gauche sur le transistor. Cette borne est appelée la Grille. Une variation de la tension sur la Grille assure une liaison entre les deux autres broches. Connecter une extrémité du moteur à la broche intermédiaire du transistor. Cette borne est appelé le Drain. Lorsque l'Arduino active le transistor en appliquant une tension sur la Grille, cette borne sera connectée à la troisième borne, appelée la Source. Connectez la source à la masse.
55)      Ensuite, connectez les fils d'alimentation du moteur au moteur à la platine d'expérimentation. Le dernier composant à ajouter est la diode. La diode est un composant polarisé, il ne peut aller que dans un sens dans le circuit. Remarquons que la diode possède une bande à une extrémité. Cette extrémité est la broche négative, ou cathode, de la diode. L'autre extrémité est la broche positive, ou anode. Connecter l'anode de la diode à la masse du moteur et la cathode de la diode à l'alimentation 9V du moteur. Voir Fig. 1. Cela peut sembler être à l'envers, et en fait, ça l'est. La diode servira à empêcher que la tension inverse générée par le moteur retourne dans votre circuit. Rappelez-vous, la tension inverse circule dans le sens inverse de la tension que vous fournissez.





Les LEDs sont aussi des diodes, au cas où vous vous demanderiez pourquoi leurs broches sont aussi appelées anodes et cathodes. Il y a quantité de types de diodes, mais elles partagent toutes la même caractéristique. Elles permettent au courant de circuler de l'anode vers la cathode, mais pas l'inverse.



LE PROGRAMME

Définissez les constantes et les variables
Le programme est relativement similaire au 1er programme que vous avez créé pour allumer une LED. Avant tout, définissez les constantes correspondant à la broche d'état de l'interrupteur switchPin (interrupteurBroche) et celle de commande du moteur motorPin (moteurBroche), ainsi qu'une variable switchState (interrupteurEtat) qui stockera l'état de l'interrupteur.


const int switchPin   = 2;
const int motorPin    = 9;
      int switchState = 0;

Déclarer le mode d'utilisation des broches
Dans le setup(), déclarer le pinMode() des broches du moteur (OUTPUT) et de l'interrupteur (INPUT).

void setup() {
       pinMode(switchPin, INPUT);
       pinMode(motorPin, OUTPUT);
}

Lire l'entrée, et placer la sortie à l'état haut si l'interrupteur est appuyé
La fonction loop() est simple. Vérifier l'état de la broche switchPin avec digitalRead().
Si l'interrupteur est appuyé, mettre la broche motorPin à l'état haut (HIGH). S'il n'est pas appuyé, mettre la broche à l'état bas (LOW). A l'état HIGH, le transistor est activé, on dit qu'il est passant, le circuit alimentant le moteur est fermé, donc il tourne. A l'état LOW, le transistor n'est pas activé, on dit qu'il est bloquant, le circuit alimentant le moteur est ouvert, il ne tourne donc pas.

void loop() {
       switchState = digitalRead(switchPin);

if (switchState == HIGH) {
       digitalWrite(motorPin, HIGH);
} else {
       digitalWrite(motorPin, LOW);
}
}



Les moteurs ont une valeur optimale de leur tension de fonctionnement. Ils pourront fonctionner dès que la tension atteint 50% de cette valeur et jusqu'à 50% au-delà de cette valeur. Si vous faites varier la tension, vous pourrez modifier la vitesse à laquelle le moteur tourne. Cependant, ne le faites pas varier au-delà de la limite, ou vous pourriez griller votre moteur.
Lorsqu'ils sont pilotés par des micro-contrôleurs, les moteurs nécessitent des dispositions particulières. Habituellement, un micro-contrôleur ne peut pas fournir assez de courant et/ou de tension pour alimenter directement un moteur. A cause de cela, vous devez utiliser des transistors pour faire l'interface entre les deux. C'est aussi une bonne chose d'utiliser des diodes pour éviter tout dommage au circuit.

Les transistors sont des composants statiques, c'est à dire qu'ils n'ont pas de parties mobiles. Grâce à cette caractéristique vous pouvez les activer et les éteindre très rapidement. Essayer de brancher un potentiomètre à une entrée analogique et d'utiliser la valeur lue pour piloter la broche PWM qui pilote le transistor. Que pensez-vous qu'il arrivera à la vitesse de rotation du moteur si vous faites varier la tension qu'il reçoit ? Avec les illustrations sur votre disque tournant, pouvez-vous obtenir différents effets visuels ?