Costruire driver motore

Salve a tutti, vorrei costruire un driver motore che mi permetta di controllare la velocità e il verso di due motori separatamente.
Purtroppo in campo di motori elettrici, e schede di controllo non sò praticamente nulla…

Girando per il web ho letto alcune discussioni in cui viene consigliato questo tutorial: http://digilander.libero.it/beamweb/ponte_h.htm

E’ davvero così semplice costruire un driver per due motori?

Con i due motori ci vorrei far muovere un robottino, quindi non penso che assorbiranno molta corrente…

Tutti i tipi di motori (dc, servo, passo passo) hanno bisogno di un driver del genere?
Io avevo intenzione di usare motori dc…

puoi usare anche un integrato, che si chiama l293 che contiene 2 ponti H...con questi puoi pilotare o due motori dc o, alternativamente un passo passo....se devi muovere un robottino dovrebbe bastare..

edit: scusa non avevo visto che nel link c'era già l'integrato...comunque quello è prefetto!

alexdb: puoi usare anche un integrato, che si chiama l293 che contiene 2 ponti H...con questi puoi pilotare o due motori dc o, alternativamente un passo passo....se devi muovere un robottino dovrebbe bastare..

edit: scusa non avevo visto che nel link c'era già l'integrato...comunque quello è prefetto!

Va bene, grazie mille! :D

alexdb: puoi usare anche un integrato, che si chiama l293 che contiene 2 ponti H...con questi puoi pilotare o due motori dc o, alternativamente un passo passo....se devi muovere un robottino dovrebbe bastare..

edit: scusa non avevo visto che nel link c'era già l'integrato...comunque quello è prefetto!

Ah, quindi, per i servomotori non servono driver particolari?

per i servi no, li puoi gestire tramite un pin di arduino e con l'apposita libreria software..(cerca nel playground..)

alexdb: per i servi no, li puoi gestire tramite un pin di arduino e con l'apposita libreria software..(cerca nel playground..)

Capito, grazie

edit. Mi sono reso conto che quello schema non è adatto... Ci sono due resistenze di pull-up che tengono gli enable alti che non servono se si vuole usare arduino.

Neanche sul datasheet ho trovato uno schema elettrico di applicazione... Altri non hanno usato ulteriori componenti: http://selfelectro.altervista.org/index.php/arduino/63-2-motori-dc-con-l293-e-pwm.html Ma i condensatori e i collegamenti effettuati nel primo link sono necessari?

Forse non c'è scritto lì però se vuoi agire sulla velocità dei motori devi controllare i pin ENABLE con degli impulsi pwm (analogWrite())

sciorty: Forse non c'è scritto lì però se vuoi agire sulla velocità dei motori devi controllare i pin ENABLE con degli impulsi pwm (analogWrite())

Si infatti stavo vedendo! Ma il circuito, i condensatori e i collegamenti effettuati fra i vari pin, sono necessari?

Perchè, ho editato sopra, c'è qualcuno che non usa nessun componente esterno... ( e usa due pin per comandare un motore, anche la velocità, ma a me i conti non tornani: A1, B1 e enable1, non dovrebbero essere tre?)

I condensatori male non fanno sicuramente, non so esattamente perché. li mettono però . Io informandomi su uno stepper da pilotare con ponte h ho visto che si possono controllare due pin con un‘uscita mettendo un npn. Cerca arduino stepper su google e guarda lo schema presente sul sito di arduino!

sciorty: I condensatori male non fanno sicuramente, non so esattamente perché. li mettono però . Io informandomi su uno stepper da pilotare con ponte h ho visto che si possono controllare due pin con un‘uscita mettendo un npn. Cerca arduino stepper su google e guarda lo schema presente sul sito di arduino!

Capito :)

Documentati un po' qui: http://www.gioblu.com/tutorials/azionamenti/78-come-scegliere-i-driver-per-motori

sciorty: però se vuoi agire sulla velocità dei motori devi controllare i pin ENABLE con degli impulsi pwm (analogWrite())

No, non si deve connettere il PWM all'Enable degli IC serie 29x e similari. L'Enable serve unicamente per spegnere il ponte, non per applicarci il PWM, è un errore grave che porta come conseguenza una grossa perdita di efficienza. Tutti gli H bridge della serie 29x andrebbero controllati esclusivamente in modo LAP, ovvero con due segnali PWM tra loro complementari applicati su i due input (IN1 e IN2 oppure IN3 e IN4) del ponte, l'Enable o si tiene alto fisso con una pull up oppure si controlla con un segnale dedicato se è necessario spegnere il ponte.

astrobeed:

Cavolo.. Allora è vero che quando credi di aver capito tutto ti sbagli :)

sciorty: Cavolo.. Allora è vero che quando credi di aver capito tutto ti sbagli :)

Il vero errore è fidarsi ciecamente di quello che si trova in giro per la rete senza verificare :D Tieni presente che molti siti sono fotocopie, o scopiazzature, di altri che a loro volta hanno attinto a fonti poco attendibili e/o errate, è in questo modo che si propagano rapidamente le cavolate.

io ho usato una porta NOT (di un 7404) collegata ai 2 pin del driver e ad un pwm di arduino, per fare quel lavoro e funziona anche così, ma anche il transistor và bene.

astrobeed:

Ma la perdita di efficienza del driver si ha nel momento in cui gli di degli impulsi pwm oppure sono danni che persistono nel tempo?

sciorty: Ma la perdita di efficienza del driver si ha nel momento in cui gli di degli impulsi pwm oppure sono danni che persistono nel tempo?

La perdita di efficienza è intesa come rapporto tra energia fornita al ponte e quella che arriva al motore, se il motore è fermo non c'è nessuno consumo di energia, salvo i pochi mA usati dalla logica del ponte. Danni ne fai solo se il ponte surriscalda troppo per via della perdita di efficienza, l'energia viene dissipata in calore invece di arrivare al motore, però consumi molta più energia del dovuto e di conseguenza accorci la durata delle eventuali batterie o regali soldi all'Enel se lo alimenti da rete.

astrobeed:

sciorty: però se vuoi agire sulla velocità dei motori devi controllare i pin ENABLE con degli impulsi pwm (analogWrite())

No, non si deve connettere il PWM all'Enable degli IC serie 29x e similari. L'Enable serve unicamente per spegnere il ponte, non per applicarci il PWM, è un errore grave che porta come conseguenza una grossa perdita di efficienza. Tutti gli H bridge della serie 29x andrebbero controllati esclusivamente in modo LAP, ovvero con due segnali PWM tra loro complementari applicati su i due input (IN1 e IN2 oppure IN3 e IN4) del ponte, l'Enable o si tiene alto fisso con una pull up oppure si controlla con un segnale dedicato se è necessario spegnere il ponte.

Ah! Cone segnali complementari intendi ad esempio: IN1 ( 30 ), IN2 ( 255 - 30 ) ?

Inoltre, una domanda di natura elettronica :D

Se metto una resistenza di pull-up agli enable, gli enable saranno sempre alti. Ma se ad ogni enable collego sia una pull-up ( resiste da 10k verso +5V ), che un connettore a cui potrei attaccarci dei pin arduino. Riesco a mandare a 0 il livello logico dell'enable, se sul pin imposto LOW?

Cioè, vorrei fare in modo di tenerli sempre alti se non li uso (in modo da risparmiare pin di arduino), ma lasciando una possibilità di controllo ( per non pentirsi di aver "disabilitato" la funzione enable in futuro )

A breve cerco di fare uno schema elettrico XD

BrainBooster: io ho usato una porta NOT (di un 7404) collegata ai 2 pin del driver e ad un pwm di arduino, per fare quel lavoro e funziona anche così, ma anche il transistor và bene.

In questo modo si può arrivare a controllare il verso e la velocità di un motore con un solo pin! :open_mouth: Dal punto di vista dell'efficienza meglio questo o il metodo complementare?

Grazie mille a tutti XD

Ci ho messo una vita ad imparare le basi di Eagle :sweat_smile:

Comunque, ho realizzato lo schema di quello che vorrei realizzare, con i relativi connettori a vite che utilizzerò. I connettori li ho divisi per categorie, le due Vcc (probabilmente ne bastava una...), le due Vin, gli Enable, le coppie di Driver, le coppie dei motori. Nello schema li ho spostati per comodità. Ho anche visto che i più performanti SN754410 ha la stessa piedinatura del L293D, quindi probabilmente utilizzerò i primi...

Gli enable, con questo schema, possono essere controllati con arduino? :.

E il connettore dei GND è collegato con tutti i GND facendo così? :blush:

Ricordati che SN754410 contrariamente a L293D non ha i diodi di protezione per la soppressione dei transienti, quindi devi aggiungerli, guarda il datasheet del SN754410 . ;)