LE MODULE ME INTERFACE MOTEUR
Le module "Me Interface moteur" comporte un double pont en H, le TB6612 qui gère la vitesse et la direction de deux moteurs à courant continu.
La tension d'alimentation des moteurs doit être comprise entre 6 et 12 V et le courant admissible est de 1,2 A. Le module accepte une pointe de courant de 3,2 A au démarrage des moteurs.
Les fonctions contenues dans la bibliothèque Makeblock sont :
-
MeDCMotor moteur(PORT_X) où PORT_X est le port sur lequel est branché le module. Cette fonction permet de créer l'objet.
-
moteur.run(vitesse) où vitesse représente la vitesse de rotation du moteur (compris entre -255 et 255). Cette fonction permet de contrôler la vitesse et la direction du moteur.
-
moteur.stop() permet d'arrêter le moteur.
Le tableau ci- dessous donne les ports des cartes "Me Orion" et "Me Auriga" pouvant être connectés à ce module.
Remarque :
Si nous utilisons l'interface de puissance intégrée aux cartes "Me Orion" ou "Me Auriga", le port de la fonction MeDCMotor moteur(PORT_X) est remplacé par M1 ou M2.
Exemple :
Nous souhaitons faire tourner un moteur en fonction de la position d'un potentiomètre et afficher la valeur de la vitesse sur un module "Me Afficheur LCD".
Liste du matériel :
Programme :
/*Moteur_Makeblock est un programme qui affiche la vitesse de rotation d'un moteur sur un module "Me Afficheur LCD TFT".
La vitesse est proportionnelle à la tension issue d'un module "Me Potentiomètre"*/
#include "MeOrion.h" // appel des bibliothèques
#include <SoftwareSerial.h>
MeSerial serie(PORT_5); // création de l'objet serie (module branché sur le port 5)
MePotentiometer potentiometre(PORT_6); // création de l'objet potentiometre (module branché sur le port 6)
MeDCMotor moteur(PORT_1); // création de l'objet moteur (module branché sur le port 1)
int valeur;
int vitesse;
void setup()
{
serie.begin(9600); // initialisation de la liaison série à 9600 bit/s
serie.print("DR0;"); // configuration de l'écran dans le sens horizontal
}
void loop()
{
valeur=potentiometre.read(); // on fait la conversion A/N
vitesse=map(valeur,0,973,0,255); // valeur varie de 0 à 973 (au lieu de 1023) et vitesse va varier de 0 à 255 (pour le moteur)
valeur=map(valeur,0,973,0,100); // valeur varie de 0 à 973 (au lieu de 1023) et va varier de 0 à 100 (pour l'afficheur)
serie.print("CLS(0);"); // on efface l'écran
serie.print("DS64(45,0,'Arduino Passion',1);"); // on écrit Arduino Passion en rouge avec la plus grande taille de caractère
serie.print("DS32(0,70,'Vitesse : "); // on écrit Vitesse
serie.print(valeur); // puis la valeur de la vitesse
serie.println(" %',4);"); // et % en jaune
moteur.run(vitesse); // on fait tourner le moteur
delay(500);
}