En esta sessió veurem com podem fer girar cadascun dels motors en ambdós sentits
Els pins del 1-7 controlaran un motor i del 9 al 15 l'altre motor
Els pins 1 i 9 activen o desactiven cadascun dels motors i també ens permetran més avant controlar la seva velocitat. El control del sentit de gir el determinen els valors que connectem als pins 2-7 i 9-15 . Per a controlar el motor que quedaré a la nostra esquerra utilitzem :
MOTOR 1
pin 1(enable) : 1 activa i 0 desactiva el motor
pin 2-7
ENABLE 1 | PIN2 | PIN7 | MOTOR |
0 | --- | ---- | ATURAT |
1 | 1 | 0 | SENTIT HORARI |
1 | 0 | 1 | SENTIT ANTIHORARI |
1 | 0 | 1 | ATURAT |
1 | 0 | 0 | ATURAT |
Comprovem el funcionament d'un dels motors
Connectem els pins 1-2 7 en tres entrades digitals d'Arduino
veiem el codi que necessitem per a que el motor gire 1 seg en un sentit s'ature un segon i gire un segon en l'altre sentit
En primer lloc cal que indiquem on hem connectat els pins de control del motor en arduino
#define actm1 3 // activacion motor 1 #define motor1_1 4 // control motor 1 pin1 #define motor1_2 5 // Control motor 1 pin2
en el void setup() indicarem que en estes connexions esperem un valor, per tant, són de sortida OUTPUT
void setup() { pinMode( actm1, OUTPUT); pinMode( motor1_1, OUTPUT); pinMode( motor1_2, OUTPUT); } void loop() { digitalWrite(actm1, HIGH); // Activamos Motor1 digitalWrite(motor1_1, HIGH); digitalWrite(motor1_2, LOW); // gira en sentido horario delay(1000); // 1 seg digitalWrite(motor1_1, LOW); digitalWrite(motor1_2, LOW); // paramos motor delay(1000); digitalWrite(motor1_1, LOW); digitalWrite(motor1_2, HIGH); // gira en sentido antihorario delay(1000); digitalWrite(motor1_1, LOW); digitalWrite(motor1_2, LOW); // paramos motor delay(1000); }El programa complet ens quedarà
#define actm1 3 // activacion motor 1
#define motor1_1 4 // control motor 1 pin1
#define motor1_2 5 // Control motor 1 pin2
void setup()
{
pinMode( actm1, OUTPUT);
pinMode( motor1_1, OUTPUT);
pinMode( motor1_2, OUTPUT);
}
void loop()
{ digitalWrite(actm1, HIGH); // Activamos Motor1
digitalWrite(motor1_1, HIGH);
digitalWrite(motor1_2, LOW); // gira en sentido horario
delay(1000);
digitalWrite(motor1_1, LOW);
digitalWrite(motor1_2, LOW); // paramos motor
delay(1000);
digitalWrite(motor1_1, LOW);
digitalWrite(motor1_2, HIGH); // gira en sentido antihorario
delay(1000);
digitalWrite(motor1_1, LOW);
digitalWrite(motor1_2, LOW); // paramos motor
delay(1000);
}
Cal que implementes el programa i comproves el seu funcionament. Desprès l'has d'ampliar connectant també el motor 2 en els pins 6-7-8 i fent la part de programa que falte.