LMD1800T e arduino

Salve a tutti,
È la prima volta che scrivo su questo forum ma lo Seguo regolarmente da ormai due anni e vorrei fare i complimenti a tutti gli utenti i piu attivi e i meno per la comunità che siete riusciti a mettere in piedi.

Detto questo, vorrei chiedervi aiuto per un problema che ho incontrato realizzando un prototipo di un supporto per far muovere un pannello solare.
In pratica devo controllare due motori da 12v e 3A tramite arduino e per fare questo ho comprato un LMD18200T. Il problema è che non so come interfacciarlo ad Arduino, come vanno collegati i motori? E tramite quali pin lo si comanda con Arduino?
P.s. Il datasheet è questo http://www.national.com/ds/LM/LMD18200.pdf

datasheet pagina 6.
pin 1 collegato col pin2 con un condensatore da 10nanofarad
pin 2 al + di un motore
pin 3 ad un pin digitale
pin 4 freno (da mettere ad alto in contemporanea col PWM quando vuoi frenare)
pin 5 ad un pin PWM
pin 6 all'alimentazione esterna (12 Volt)
pin 7 al GND di arduino e al - dei motori
pin 8 ti dice il consumo, credo. butta fuori 377micro ampere per ogni ampere usato.(a 12 volt, quindi non usarlo)
pin 9 se diventa basso l'integrato sta scaldando troppo (12 Volt, occhio ad usarlo, cmq in caso a 180° l'integrato si spegne da solo)
pin 10 e 11 vedi pin 2 e 1

il pin PWM controlla la velocità. al 50% stai fermo, a 0% tutto inditro e al 100% tutto avanti. C'è anche una tabellina che ti mostra cosa succede quando freni/cambi direzione.

leggio anche il resto, io non l'ho fatto ma devi capire bene come funziona il tutto prima di brasare arduino & motori & chip. Comunque è proprio al limite, io avrei preso qualcosa di più potente così sarei stato tranquillo che non scaldava troppo da andare in protezione termica.

Grazie Lesto per la risposta, é arrivata più lesta del previsto! :slight_smile:
Se posso romperti ancora un po le scatole, vorrei capire se come pilotare i due motori indipendentemente ( ad.es. Il motore1 a tutta velocita in senso orario e il motore2 al 50% della velocità in senso antiorario). Credo che si capisca dalla "logic truth table" sempre a pag.6 ma non ne sono sicuro.
Mi dicevi poi che tu avresti scelto un altro integrato... Quale ad esempio?

Grazie ancora per la risposta!

quale non so, se cerchi nel forum qualche nome trovi.
Non credo che si possano pilotare indipendentemente, tranne il senso di marcia.

Ok, allora l'avevo interoretata bene la "tabella delle verita logiche"!
Per ora sul forum ho trovato solo integrati per pilotare stepper ma continuo nella ricerca e trovero qualcosa... Si spera!
Grazie ancora per le delucidazioni

ho letto bene dell'L6203, può reggere fino a 48V e 5A, in oltre, se non ho capito male (ho dato un'occhiata veloce) ogni mezzo ponte è pilotabile singolarmente..

lesto:
pin 8 ti dice il consumo, credo. butta fuori 377micro ampere per ogni ampere usato.(a 12 volt, quindi non usarlo)

Da quando una corrente ha una specifica tensione senza essere rapportata su una resistenza ?
Quella è un'uscita che fornisce una piccola corrente proporzionale alla corrente che scorre sul motore, ci va collegata una opportuna resistenza per trasformarla in una tensione da misurare con un ADC, il valore della resistenza dipende dal fondo scala amperometrico e dalla tensione massima desiderata, p.e. 2650 (R con precisione 1%) ohm per un fondo scala di 5A con 5V out

pin 9 se diventa basso l'integrato sta scaldando troppo (12 Volt, occhio ad usarlo

Ma no, è un'uscita open drain, ci va una pull up che determina la tensione per il livello logico 1.

il pin PWM controlla la velocità. al 50% stai fermo, a 0% tutto inditro e al 100% tutto avanti. C'è anche una tabellina che ti mostra cosa succede quando freni/cambi direzione.

Vero al 50%, il 18200 si può usare sia un modo LAP che in modo S/M, nel primo modo si collega PWM a 1 logico fisso e si modula con il PWM DIR, nel secondo modo si collega il PWM a PWM e a seconda dello stato logico presente su DIR il motore gira in un senso o nell'altro.

Comunque è proprio al limite, io avrei preso qualcosa di più potente così sarei stato tranquillo che non scaldava troppo da andare in protezione termica.

Il 18200 regge 3A continui e fino a 6A di picco per 200 ms, se il motore è da 3A, e quasi sicuramente è la corrente di stallo/picco, non ci sono problemi per comandarlo tramite il 18200.

p.s.

IL 18200 può comandare un solo motore, per comandare due motori occorrono due 18200.

@astrobeed
I valori di tensione e corrente dati con un motore non sono i valori nominali?
Percui la corrente di avvio (picco) o di stallo sono più alti.
Ciao Uwe

Quindi i collegamenti vanno bene fatti così? (sto collegando un solo motore)

bootstrap1: a output1 tramite condensatore da 10nanofarad
output1: al + del motore
direction input: al pin 6pwm di arduino
brake input: al pin 3pwm di arduino
pwm input : al pin 5pwm di arduino
vs power supply: al + dell’alimentatore e a vin di arduino
ground: al - dell alimentatore, al - del motore e al gnd di arduino
gli altri sono tutti scollegati

il brake lo puoi usare su un pin digitale, con 1 freno e 0 no.
poi scelti il sistema di pilotaggio, in entrambi i casi ti basta un solo PWM.

mi rimane il dubbio del perchè abbiano messo i pin 10 e 11 come bootstrap2 e output2 se puoi pilotarci un solo motore... Nel senso, se attaccassi un altro motore a questo output, la potenza erogata dal chip è la stessa, quindi gli ampere o il voltaggio massimi si dividono tra i due motori, se il ponte H è solo 1.

Mi facevo anche io la stessa domanda sui pin 10 e 11, appena riusciro a far funzionare il tutto vi faro sapere...
Quindi ora se io scrivo un codice tipo questo, dovrebbe girare al 100% della velocita in un senso giusto?

int dir=6;
int pwm=5;
int br=3;

Void setup () {}

Void loop() {

digitalWrite(br, LOW);
digitalWrite(dir, HIGH);
analogWrite(pwm, 255);

}

Con questo codice gira pianissimo in senso antiorario, se casmbio il valore di pwm e lo porto a 0 fa la stessa cosa, come é possibile?

Ho tolto il condensatore tra bootstrap e output e ora la velocità la modula correttamente,
Solo che il senso di rotazione rimane invariato sia se metto il pin "dir" in stato high che in stato low.

Risolto, semlicemente il motore va connesso ad output1 e ad output 2, non ad output1 e al gnd!

ah ora ho capito... ouput1 è l'ouput di mezzo ponte H e la stessa cosa per l'altro. Infatti per girare al contrario il voltaggio ai capi del motore deve essere invertito, cosa che non poteva accadere col collegamento a GND!

alle volte basta rifletterci con più calma :slight_smile: