Commande d'un moteur pas à pas
1. Description
Dans ce tuto, nous allons montrer comment actionner un moteur pas à pas à l'aide d'une carte Arduino
et d'un driver ULN2003.
La rotation du moteur s'effectue en suivant le tableau suivant :
Couleur des fils
|
Rotation
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
orange
|
actif
|
actif
|
|
|
|
|
|
actif
|
jaune
|
|
actif
|
actif
|
actif
|
|
|
|
|
rose
|
|
|
|
actif
|
actif
|
actif
|
|
|
bleu
|
|
|
|
|
|
actif
|
actif
|
actif
|
2. Câblage de la carte Arduino
3. Programme de base pour la compréhension
// Définition des numéros de broches que nous utilisons.
int Pin0 = 10;
int Pin1 = 11;
int Pin2 = 12;
int Pin3 = 13;
int pasMoteur = 0;
void setup()
{
// Configurer l'ensemble des broches utilisées en sortie.
pinMode(Pin0, OUTPUT);
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
}
void loop()
{
// Mise en rotation du moteur.
switch(pasMoteur)
{
case 0:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
break;
case 1:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
break;
case 2:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
break;
case 3:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
break;
case 4:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 5:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 6:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 7:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
break;
default:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
}
pasMoteur++;
if(pasMoteur > 7)
{
pasMoteur = 0;
}
delay(1)
}