Modulo motore MX1508 per Arduino

 

Il modulo modulo motore MX1508 illustrato in questo articolo è pubblicizzato su Aliexpress e Banggood come “Dual Channel L298N DC Motor Driver Board PWM Speed Dual H Bridge Stepper Module” tuttavia  il chip presente è un MX1508 di produzione cinese.
Se pilotato per esempio con una scheda Arduino UNO R3, può comandare due motori in modo indipendente in entrambe le direzioni, in configurazione H-bridge con una corrente di 800 mA , con una corrente di picco di 2,5 A, e sistema interno di controllo della temperatura..

modulo motore mx1508

Descrizione del modulo motore MX1508

Il chip MX1508 della Shenzhen Guanghui Electronics Co., Ltd in package SOP-16 è un driver per motori DC a spazzole, al suo interno si trovano due canali H-bridge con MOSFET di potenza a canale N e canale P e può gestire due motori, oppure due avvolgimenti di un motore passo-passo).
Il circuito ha un ampio intervallo di tensioni di funzionamento (da 2 V a 9,6 V), la massima corrente di uscita continua raggiunge 0,8 A e la massima corrente di uscita di picco raggiunge 1,5 A.
Il circuito di pilotaggio dispone di protezione da surriscaldamento incorporato. Per cui quando la corrente di carico attraverso il circuito di pilotaggio è di gran lunga superiore alla massima corrente continua del circuito, la temperatura delle giunzione del chip all’interno del circuito aumenterà rapidamente .
Una volta superato il valore impostato (valore tipico 150 ℃), il circuito interno disattiverà immediatamente la tensione di uscita.
Dopo che il circuito è stato ripristinato a una temperatura sarà diminuita, sarà possibile utilizzare nuovamente il circuito.

Caratteristiche:

Tensione di alimentazione del modulo2 -9,6 V
Tensione di ingresso del segnale: 1,8-7 V
Corrente per singolo canale:0,8 A
Corrente di funzionamento singola:1,5 A
Corrente di picco:fino a 2,5 A
Corrente di stand by:inferiore a 0,1 μA
Circuito di protezione surriscaldamento:incorporato (TSD) con effetto isteresi
Dimensione:24,7 x 21 x 7 mm
Diametro del foro di montaggio:2 mm

Schema elettrico del modulo

Analizzando lo schema elettrico del modulo, si nota che dispone di un solo punto di alimentazione, per cui è stato previsto un resistore da 220 ohm che limita la tensione ad uno zener diodo di 5 Volt che provvede a fornire la tensione alla sezione digitale.
Per cui se si alimenterà il modulo con una tensione compresa tra i 6  ai 10 Volt non dovrebbero esserci problemi.
Sempre esaminando i componenti presentii sul PCB, si nota che non sono  presenti i diodi fly back sebbene questi siano consigliati nel caso di ponti H-bridge.
Di conseguenza, potrebbero esserci grossi picchi sulla linea elettrica quando si inverte la direzione, il che potrebbe causare problemi con altri dispositivi collegati.
La spaziatura dei pin di controllo e uscita motori hanno un passo standard di 2,54 mm mentre quello di alimentazione stranamente ha un passo non standard.

Lo schema sotto riportato è stato realizzato con il programma EasyEDA, per informazioni vedere l’articolo EasyEDA – Freeware per circuiti stampati

modulo motore mx1508

Schema elettrico del modulo MX1508

homotix

Montaggio del modulo

Il modulo arriverà in un blister antistatico, per poterlo utilizzare, occorre saldare dei pinhead non presenti, in alternativa è possibile saldare direttamente i cavi sui pad.

modulo motore mx1508

Scheda con pin prima della saldatura

modulo motore mx1508

Modulo con pin montati

Esempio di utilizzo

Vediamo un test del modulo, in questo caso comanderemo la rotazione di due piccoli moto riduttori.
Lo schema di collegamento e riportato nell’immagine sotto riportata.
Sono stati utilizzati i seguenti componenti:

Nella tabella sono indicati i collegamenti

Modulo MX1508UNO R3
A1D5
A2D6
B1D10
B2D11
+Alimenntazione motori
-GND, Pin GND Alimentazione motori

 

se utilizzerete il cavo collegato al PC, attivando il monitor seriale potrete vedere la funzione in esecuzione in quel momento
In pratica le ruote ruoteranno nello stesso verso in senso orario o antiorario o in verso opposto a sempre in senso orario.
Se le ruote sono montate su un robot, questo si muoverà in modo concorde a quanto indicato.

Il programma dopo ave assegnato ad ogni pin al sua funzione e averli settati come output, provvederà ad inviare gli opportuni valori

const int AIA = 5;  // (pwm) pin 5 connected to pin A1
const int AIB = 6;  // (pwm) pin 6 connected to pin A2
const int BIA = 10; // (pwm) pin 10 connected to pin B1
const int BIB = 11;  // (pwm) pin 11 connected to pin B2
byte speed = 255;  // change this (0-255) to control the speed of the motors
void setup() {
  pinMode(AIA, OUTPUT); // set pins to output
  pinMode(AIB, OUTPUT);
  pinMode(BIA, OUTPUT);
  pinMode(BIB, OUTPUT);
  Serial.begin( 9600 );
}
void loop() {
  Serial.println( "Avanti..." );
  forward();
  delay(2000);
  STOP();
  Serial.println( "Indietro..." );
  backward();
  delay(2000);
  STOP();
  Serial.println( "Sinistra..." );
  left();
  delay(2000);
  STOP();
  Serial.println( "Destra..." );
  right();
  delay(2000);
  STOP();
}
void backward()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, speed);
  analogWrite(BIA, 0);
  analogWrite(BIB, speed);
}
void forward()
{
  analogWrite(AIA, speed);
  analogWrite(AIB, 0);
  analogWrite(BIA, speed);
  analogWrite(BIB, 0);
}
void left()
{
  analogWrite(AIA, speed);
  analogWrite(AIB, 0);
  analogWrite(BIA, 0);
  analogWrite(BIB, speed);
}
void right()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, speed);
  analogWrite(BIA, speed);
  analogWrite(BIB, 0);
}
void STOP()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, 0);
  analogWrite(BIA, 0);
  analogWrite(BIB, 0);
  delay (2000);
}

Video dimostrativo del test

Altri moduli per controllo motori

Altri tipi di controllo motori possono essere trovati in questo articolo

moduli shield controllo motori

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.