CIao a tutti, mi hanno regalato questa motor drive, ma purtroppo sono ancora un principiante e non so propio come collegare il tutto ad arduino e scrivere il codice.
Ho provato a cercare qualcosa su internet ma trovo solo documentazione sulla shield r3
Allora un servo e un motore dc sono riuscito a farli funzionare, il problema è che il motore dc gira davvero lento, ho messo una batteria da 9v sul modulo !
dite che devo maggiorare la batteria?
sull arduino ho collegato:
ENA -> 5V
A1-> PIN4
A2 -> PIN5
GND -> GND ARDUINO
Il motore dc è come se prendesse solo la corrente da arduino, e non dal modulo!
E' molto bella la foto presa da internet ma non rispecchia la tua situazione.
Esempio:
Ci sono ponticelli? Se si dove?
Se posti anche il codice possiamo darti una mano.
pighixxx:
Se posti anche il codice possiamo darti una mano.
Meglio se posta il datasheet della scheda o il link al sito del produttore, ad occhio direi che è composta da due L298 che permettono di controllare quattro motori DC oppure due stepper, però siamo nel campo delle ipotesi senza riferimenti.
astrobeed:
Meglio se posta il datasheet della scheda o il link al sito del produttore, ad occhio direi che è composta da due L298 che permettono di controllare quattro motori DC oppure due stepper, però siamo nel campo delle ipotesi senza riferimenti.
E' questa: Chihai Motor 3162 DC Motor Holzer Encoding 24V 8000rpm High Torque - Free shipping - DealExtreme
Quindi la vedo dura con la documentazione...
edit
ho trovato qualcosa: http://seller.tradeglobals.com:8089/SRMImages/ProductRequirement/20121127/four%20moto%20driver%20datasheet.xls
Purtroppo non trovo nessun datasheet....esatto è propio quella di dealextreme!
Comunque con questo modulo posso controllare 4 motori dc e 4 servo, o 4 servo e 2 motor step!
Se volete vi posto la foto del mio collegamento, ma è veramente basilare.
Questo è un codice di prova :
int motorPin1 = 4;
int motorPin2 = 5;
void setup(){
pinMode (motorPin1, OUTPUT);
pinMode (motorPin2, OUTPUT);
}
void loop(){
digitalWrite (motorPin1, HIGH);
digitalWrite (motorPin2, HIGH);
delay ;1000;
digitalWrite (motorPin1, LOW);
digitalWrite (motorPin2, HIGH);
delay ;1000;
digitalWrite (motorPin1, LOW);
digitalWrite (motorPin2, LOW);
delay ;1000;
}
edit il collegamento veramente basilare:
Se guardi al post precedente ho postato una sottospecie di datasheet che ti dice come controllare la scheda.
Inizia da li. Ciao
edit
Ma a che pin di Arduino hai collegato il GND della scheda?
Alla fine ho risolto, sbagliavo il collegamento.
Ora riesco a far funzionare tutto...grazie lo stesso!
Pero sorge un altro problema...con un motore dc normale gira una meraviglia, ma ho provato a collegare un motore lego (9v) e girano propio lenti...sono consapevole del fatto che questi motori succhiano abbastanza!
COsa devo fare?
Guarda ho avuto lo stesso problema , purtroppo se lo alimenti con batteria a 9v funzionano male per i pochi mA, se lo hai usa l'alimentatore di arduino e collega il motor driver al pin vin di arduino, ma fai attenzione a quanto eroga l'alimentatore se è come il mio che manda 12v e se il motorino è da 9v è probabile che dovrai mettere una resistenza fra il pin vin di arduino e l'alimentazione del driver.
SI ma siccome sto costruendo un rover non posso tenere l alimentatore...
devo per forza usare la batteria!
Comunque ho fatto una prova con il tester sulla board, all uscita DC mi eroga 4,5v e non 9! Perche?
el_machico:
SI ma siccome sto costruendo un rover non posso tenere l alimentatore...
devo per forza usare la batteria!
Comunque ho fatto una prova con il tester sulla board, all uscita DC mi eroga 4,5v e non 9! Perche?
Le batterie da 9V sono fatte per poter dare correnti limitate. cosa Ti aspetti da una batteria con na capacitá di 200mAh che possa darti 10A per 112 secondi? Ha una resistenza interna rilevante e quando chiedi tanta corrente hai una perdita di tensione notevole. oltre questo penso che hai anche una batteria ormai vuota. usa un altro tipo di batteria per esempio 2 da 4,5V modello 3LR6
Ciao Uwe
Ciao uwefed , grazie per la risposta.
Purtroppo in elettronica non sono molto pratico, mastico molto di piu l informatica e un po di meccanica.
Quindi se ho capito bene: quando gli Ampere non sono abbastanza il voltaggio scende?
Se quello che ho capito è giusto, ti pongo un altra domanda.
La lego tempo fa, faceva un programmatore (RCX) per comandare questi motori e sensori...
Questo programmatore funziona con 6 batteria da 1.5v, Come è possibile che riesca a farli girare ?
Allora ho usato giustamente 2 batteria da 4,5 v e tutto gira bene, anche se quelle batteria pesano un sacco e il rover sforza abbastanza...ma è l ' ultimo dei miei problemi.
Ora sorge il nuovo problema, volevo configurare il tutto con un modulo bluetooth hc07...ecco che sorgono i problemi!
Questo modulo ha i pin :
vcc
gnd
rx
tx
state
key
Io ho collegato tutto giustamente apparte lo state e la key che penso ora non mi interessano.
Ma il modulo non comunica nulla, e nell IDE di arduino la porta seriale in uscita non la vedo!!!sto diventando matto da 2 giorni.
Ho provato pure ad aprire la comunicazione con putty e nulla...Mi sorge il problemA che il modulo sia rotto.
Riuscite ad aiutarmi? premetto che il pairing è stato fatto tutto corretto, vedo le 2 porte COM da gestione dispositivi.
LO sketch è il solito che si usa per comunicare da seriale
el_machico:
Io ho collegato tutto giustamente...
Ciao, posta una foto dei collegamenti
gnd--->gnd arduino
vcc--->3,3
rx--->pin2 arduino
rx--->pin3 arduino
e questo è lo sketch:
#define rxPin 2
#define txPin 3
#include <SoftwareSerial.h>
SoftwareSerial mySerial(rxPin, txPin);
void setup()
{
Serial.begin(9600);
Serial.println("Start");
mySerial.begin(115200);
/* add setup code here */
mySerial.write("AT+VERSION");
}
void loop()
{
if (mySerial.available())
Serial.write(mySerial.read());
}
Dovrebbe restituirmi sulla seriale (USB) la versione del modulo, invece nulla.
L'RX del modulo devi collegarla al TX (Nel tuo caso il pin 3), il TX del modulo all'RX (Nel tuo caso il pin 2)
Inoltre qui:
mySerial.begin(115200);
cambialo con:
mySerial.begin(9600);
pighixxx:
L'RX del modulo devi collegarla al TX (Nel tuo caso il pin 3), il TX del modulo all'RX (Nel tuo caso il pin 2)Inoltre qui:
mySerial.begin(115200);
cambialo con:
mySerial.begin(9600);
pighixxx grazie mille per l aiuto..
Comunque ho gia provato come dici, a cambiare anche il baudrate..ma nulla..il modulo non invia niente!
Tra l'altro ti sei dimenticato una cosa importante. Il partitore resistivo per portare da 5V a 3V3 il TX di Arduino verso l'RX del modulo...
edit:
1.8K 3.3K
TX(5V) --///-o-///--GND
|
|
RX(3.3V)
Ma tutti gli schemi che ho visto su questo tipo di moduli non usava nessuno una resistenza!
Non funziona per quello? mi sembra strano
Provando e riprovando alla fine ci sono riuscito, era un problema di java nel gestire RXTX, soluzione trovata su questo forum!
Ecco perchè non mi dava la porta COM in uscita sull IDE.
Ora comunica, pero se provo a mandarli qualche comando, non restituisce nulla...del tipo:
AT+VERSION
penso ci sia qualche problema nella lettura dei caratteri, cioè arduino non riesce ad interpretare i carateri del modulo bluetooth e viceversa.
Ho provato ad usare Char ma non ho risolto.
Ah il baudrate ho dovuto per forza cambiarlo a 38400 se no ricevevo caratteri incompresibili.