Buongiorno a tutti
Vi scrivo per avere un aiuto sull’utilizzo del modulo L9110 per il pilotaggio di 2 motori in DC tramite un arduino Mega.
I 2 motori sono stati recuperati da un paio di stampanti e sono a 24V
Quello che vorrei ottenere è la possibilità di comandare i 2 motori indipendentemente l’uno dall’altro.
Es.
Motore A fermo e motore B fermo
Motore A in moto avanti e motore B fermo
Motore A in moto indietro e motore B fermo
Motore A in fermo e motore B in moto avanti
Motore A in fermo e motore B in moto indietro
Quello che ho fatto è:
ad Arduino, ai pin 4, 5, 6, 7, ho collegato il 4 pin del modulo L9110.
Rispettivamente
pin4 con A-1A
pin5 con A-1B
pin6 con B-1A
pin7 con B-1B
Poi ho alimentato il modulo L9110 con un alimentatore esterno da 24v sul pin VCC e GND.
Infine ho alimentato l’Arduino con un alimentazione esterna da 12 v.
In queste condizioni, sono riuscito ad
ottenere la rotazione contemporanea dei 2 motori sia nello stesso verso che in verso opposto, c on lo sketc:
//Programma
int IN1 = 4;
int IN2 = 5;
int IN3 = 6;
int IN4 = 7;
void setup()
{
//Definizione
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop()
{
//MOTORE A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
//MOTORE B
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(2000);
//MOTORE A
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
//MOTORE B
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(2000);
//MOTORE A
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
//MOTORE B
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(2000);
//MOTORE A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
//MOTORE B
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(2000);
//MOTORE A
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
//MOTORE B
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(2000);
//MOTORE A
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
//MOTORE B
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(2000);
}
Se però cerco di ottenere la rotazione di un motore con l’altro fermo, non ci riesco
Lo sketc usato è:
//Programma
int IN1 = 4;
int IN2 = 5;
int IN3 = 6;
int IN4 = 7;
void setup()
{
//Definizione
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop()
{
//MOTORE A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
//MOTORE B
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(2000);
//MOTORE A
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
//MOTORE B
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
In questo caso infatti si ha che ruota solo il Motore A mentre il B non ruota…
Ho provato anche con 2 differenti moduli L9110, entrambi alimentati da 24V, uno dedicato al motore A e uno al Motore B ma niente…
Qualcuno può aiutarmi?
Grazie