Projet N°1 : Moteur piloté par carte arduino
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 ?