1/14
FICHE F3 CONTROLER DES MOTEURS ET DIRIGER
UN ROBOT
SOMMAIRE
1.Contrôler des moteurs CC simples ....................................................................................................... 3
2. Le pont en H ........................................................................................................................................ 3
2.1. Le circuit SN754410 de Texas Instrument ................................................................................ 3
2.2. Le câblage du circuit ................................................................................................................. 4
2.3. Le code Arduino ........................................................................................................................ 5
3. La modulation de largeur du signal (PWM ou Pulse Width Modulation). .......................................... 5
3.1. Principe de la commande PWM ............................................................................................... 6
3.2. Application................................................................................................................................ 7
4.Diriger un robot avec un joystick ......................................................................................................... 8
4.1. Anatomie d’un joystick ............................................................................................................. 8
4.2. Premiers essais ......................................................................................................................... 9
4.3. Calibrage du joystick ............................................................................................................... 10
Samedis bénévoles spécial Arduino
Workshop n°1
2/14
4.4. Un joystick et 8 directions ...................................................................................................... 10
4.5. Le programme de l’Arduino ................................................................................................... 11
3/14
1.Contrôler des moteurs CC simples
Cette séquence se limite au contrôle des moteurs à courants continus les plus ordinaires et ne traite
pas des moteurs pas à pas ni des moteurs brushless.
Deux techniques sont utiles :
- La commande du sens de rotation par un pont en H ;
- La commande la puissance (et donc de la vitesse) par la modulation d’amplitude du signal
(PWM ou Pulse Width Modulation).
2. Le pont en H
Le nom de ce circuit vient de sa forme :
Selon l’ouverture et la fermeture des
interrupteurs, le circuit alimente ou pas le
moteur. La fermeture de S1 et S4, exclusivement
de S2 et S3 fait tourner le moteur dans un sens
et réciproquement si on ferme S2 et S3 en
ouvrant S1 et S4. Ouvrir S1 et S2 ou S3 et S4
arrête le moteur.
Comme tout dispositif composé de bobinages, les effets de self à l’ouverture ou à la fermeture d’un
circuit produisent des pointes de courant dommages pour l’électronique et pour le moteur. Ces
courants peuvent neutralisés par des diodes. Les autres courants transitoires sont atténués par des
condensateurs de filtrages. Ainsi, le dispositif « canique » est remplace par un circuit de
commande électronique.
Le pont en H peut être implémenté par des relais des transistors ou un circuit intégré dédiée. Dans le
cadre de cette séquence, le circuit SN754410 de Texas Instrument et qui contient deux ponts en H
sera utilisé mais il existe d’autres références, comme le LN293 ou le LN298.
2.1. Le circuit SN754410 de Texas Instrument
Très peu coûteux (moins de 3 euros), ce circuit mobilise 2 PINs de l’Arduino par moteur qui peuvent
consommer chacun jusqu’à 1 ampère. Les circuits dédiés au contrôle des moteurs (motor shields)
sont plus performants et plus pratiques à utiliser mais nettement plus chers. A noter que ce circuit
permet aussi de commander des moteurs pas à pas.
La documentation complète officielle du circuit (datasheet) est disponible ici :
http://www.ti.com/lit/ds/symlink/sn754410.pdf
4/14
La reconnaissance de son brochage est essentielle mais notez qu’il n’est pas si compliqué dans la
mesure chaque rangée est symétrique et correspond à un pont en H, pour le contrôle d’un
moteur.
Pour aller plus vite, nous donnons le câblage et le code de l’Arduino correspondant.
2.2. Le câblage du circuit
Dans tout montage de puissance (même à 2A sous 5V, il y a quand même 10W maxi), nous vous
conseillons de bien séparer le circuit basse tension, celui de l’Arduino, et le circuit de puissance, celui
des moteurs. Cela est vrai avec n’importe quel équipement et le circuit de l’Arduino doit être
découplé si nécessaire avec des condensateurs et des résistances pour éviter tout retour de courant
ou parasite.
(Comme pour tout circuit le chanfrein ou l’encoche désigne le haut). Les pattes à utiliser sont
- 4, 5, 12 et 13 sont à relier à la masse (GND)
- 3 et 5 sont à relier au moteur 1
- 11 et 14 au moteur 2
- L’alimentation de ces deux moteurs viendra de la patte 8 et de
la masse (GND). Les masses doivent être reliées
- La patte 16 sera reliée au +5V de l’Arduino
- 2, 7, 10 et 15 aux pattes de l’Arduino pour la commande des
moteurs
Un petit schéma de principe au brouillon est toujours utile :
Arduino
Pont en H
SN75441
+5V
+9V
8
3
5
16
2
7
1A est la patte en
entrée qui contrôle
la patte 1Y en
sortie qui est reliée
à la borne + d’un
moteur. 2A
commande la patte
2Y reliée à la borne
du même moteur
Même principe
pour le second
moteur avec 3A et
3Y et 4A et 4Y
5/14
2.3. Le code Arduino
Le programme de l’Arduino va prendre en charge la commande des moteurs.
Il implémente la table de vérité du circuit :
EN
1A (3A)
2A (4A)
Fonction
HIGH
LOW
HIGH
Tourne à droite
HIGH
HIGH
LOW
Tourne à gauche
HIGH
LOW
LOW
Arrêt rapide
HIGH
HIGH
HIGH
Arrêt rapide
LOW
Indifférent
Indifférent
Arrêt
Après avoir déclaré les variables identifiant les PIN moteurEN12, Moteur1A et Moteur2A, la mise en
marche avant d’un moteur se ferait par les 3 instructions :
int MoteurEN12 = 3;
int Moteur1A = 4;
int Moteur2A = 5;
loop()
{
MarcheAvant()
}
Void MarcheAvant()
{
digitalWrite(MoteurEN12, HIGH);
digitalWrite(Moteur1A, HIGH);
digitalWrite(Moteur2A, LOW);
idem pour le deuxième moteur
}
Les autres mode de marche peuvent être codés de la même façon.
3. La modulation de largeur du signal
(PWM ou Pulse Width Modulation).
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !