L9110 per 2 motori DC

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

Secondo me c'e' qualche problema........
Prima di tutto l' L9110 al massimo accetta 12V, quindi mi pare strano che non sia già defunto, visto che lo piloti a 24V

Seconda cosa, se il modulino che usi è diciamo "standard", ha delle resistenze di PullUp tra gli ingressi e il Vcc, quindi rischi di far morire pure Arduino link

C'è un problema ancora più grande ... :smiling_imp:

@GianArduino19 ... cosa c'è di poco chiaro in QUESTO post, dove c'è chiaramente scritto, in grassetto, di non postare nulla dove tu hai aperto il thread ?

Inoltre, hai letto il REGOLAMENTO, punto 7 ?

Il codice DEVE essere tra i tag CODE ... che un altro moderatore, per questa volta, ti ha cortesemente aggiunto ...
... ma ricordatene ! Grazie.

Guglielmo

P.S.: Il tuo post è stato spostato nell'opportuna sezione del forum.

Secondo me il L9110 si é rotto.
Ciao Uwe

Buongiorno!
Grazie intanto per le risposte e mi scuso per gli errori quali la posizione dove ho postato la domanda e dell'errata formattazione del codice.

In effetti so che L9110 non supporta più di 12Volt.
Il fatto è che avevo acquistato dei L298N proprio per poterli alimentare a 24 Volt ma, nonostante li abbia collegati seguendo diversi tutorial,
non sembra funzionino (in ingresso i segnali arrivano ma in uscita non si ha nulla) e, volendo provare comunque, ho usato un paio di L9110 che avevo...

Non credo che i 2 L9110 siano rotti perchè, se collego l'alimentazione e poi i pin dei segnali di ingresso,
pin4 con A-1A
pin5 con A-1B
pin6 con B-1A
pin7 con B-1B
i 2 motori funzionano:
se metto le istruzioni per cui sia motore A che motore A devono girare nello stesso momento, anche se in verso opposto, girano senza problemi.

Il problema si ha invece se, nel codice, metto delle istruzioni tali per cui un motore deve girare con l'altro che deve stare invece fermo: ciò non succede ma entrambi si fermano (in effetti si sentono come delle vibrazioni nei due motori ma non ruotano)

Sono in attesa di ricevere un nuovo modulo L298N.

In ogni caso, la mia necessità è quella di pilotare, in modo distinto, 2 diversi motori DC da 24 volt tramite un Arduino Mega, quindi, se avete suggerimenti, sono tutte orecchie.

Grazie

ps è il caso che modifichi il titolo della domanda?