Si vous avez suivi le lien de l'étape précédente, vous êtes en mesure le lire la valeur du potentiomètre que vous avez monté sur l'axe de votre moteur.
Avant de s'attarder sur les calculs d'asservissement, voyons comment piloter le moteur à partir de notre Arduino.
La carte de commande doit être en accord avec la puissance de votre moteur. Le moteur MFA 950D1481 correspond à mes besoins en terme de taille, de vitesse (85 rpm sous 12v) et de puissance (18 kg/cm).
J'ai opté pour la carte MC33926 de chez Polulu car elle permet de commander un moteur à CC dans les deux sens jusqu'à 3A en continue et 5A en pic, elle se commande par PWM, elle est protégée contre les surintensités et la surchauffe, une sortie analogique permet d'avoir la consommation du moteur.
Je n'ai pas trouvé de librairie Arduino spécifique à cette carte, j'ai donc adapté la librairie de la carte DUALMC33926. Vous la trouverez dans le dépôt du code source (ref. en fin du tuto), il vous suffit de l'importer dans votre IDE: cliquer sur Croquis-> importer Bibliothèque-> ajouter Bibliothèque.
A lire: Pont en H et commande PWM
exemple de code source:
include <Ah_MC33926MotorDriver.h>
Ah_MC33926MotorDriver md;
void stopIfFault()
{
if (md.getFault()==1)
{
Serial.print("\n !!! fault !!!");
//while(1);
}
}
void setup()
{
Serial.begin(115200);
Serial.print(" MC33926 Motor Driver:");
md.init();
}
void loop()
{
Serial.print("\n0=>400: Current= ");
for (int i = 0; i <= 400; i++)
{
md.setSpeed(i);
stopIfFault();
if (abs(i) 0 == 100)
{
Serial.print(md.getCurrentMilliamps());
Serial.print(", ");
}
delay(2);
}
}