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..
Indice
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 modulo | 2 -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
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.
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:
- Modulo motore con MX1508
- Scheda Uno R3 o Scheda UNO R3 – ELEGOO
- Breadboard
- Cavetti colorati
- Moto riduttori tensione alimentazione 6V
- Porta batterie con 4 batteri 1,5V
- Batteria 9V – alimentazione scheda Uno R3
Nella tabella sono indicati i collegamenti
Modulo MX1508 | UNO R3 |
---|---|
A1 | D5 |
A2 | D6 |
B1 | D10 |
B2 | D11 |
+ | Alimentazione 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
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 = 7; // (pwm) pin 10 connected to pin B1 const int BIB = 8; // (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