Go Down

Topic: Delucidazioni sui motori (Read 770 times) previous topic - next topic

Menny

Ciao a tutti, dopo aver smembrato un robotino costruito a fascicoli tanto tempo fa mi è balenata l'idea di utilizzare arduino per pilotare i due motori e pensavo di farlo in modo banale dando valore logico "1" a un pin digitale che dovrebbe avere tensione di 5V, il robottino non si muove quindi volevo chiedere delucidazioni a voi per capire come mai il mio ragionamento è errato.

Grazie e spero di essere stato chiaro  ;)

Menny

LucaGilardi

Semplicemente perchè Arduino ti eroga troppa poca corrente :)
Per poter muovere il motore potresti usare come semplice soluzione un BJT in ON/OFF (motore al massimo della velocità o spento) ma senza potre controllare la direzione o con un ponte h (integrato o a componenti discreti) con il quale potresti usare il PWM (per controllare la velocità) e la direzione (ti occupa però due pin digitali in uscita invece che uno solo)

Menny

#2
Oct 24, 2011, 07:17 pm Last Edit: Oct 24, 2011, 07:28 pm by Menny Reason: 1
Ok per me è arabo quello che hai detto  :smiley-mr-green: siccome sono alle prime armi.
Non esiste un modo per erogare via sketch la corrente che mi serve su un pin in modo da far accendere o spegnere il mio motore a piacimento?... per ora velocità e altro non mi servono, voglio solo poter accendere o spegnere il mio motore in base a quello che mi serve; so che magari è banale ma non ci arrivo xD

edit: e se mi appoggiassi ad una batteria esterna per il motore, potrei utilizzare arduino come una sorta di "interruttore" per accendere i motore?

LucaGilardi

No, non c'è possibilità di far erogra più corrente dal Arduino, è chiedergli troppo :)
Se usi un BJT, con la corrente erogata da Arduino potresti pilotare il motore come vorresti

Cercherò di spegarti in parole semplici allora che cos'è un transistor BJT.
Sintetizzando e spiegando un po' alla buona si può dire che il BJT (in on off) è il corrispondente elettrico di un interruttore:
ha 3 pin base, emettitore, collettore.
quando la corrente in base supera una certa soglia è come se fra emettitore e collettore ci fosse un interruttore chiuso, quando la corrente è più bassa è come se l'interruttore fosse aperto.
Può essere usato per pilotare con una piccola corrente un carico che ne richiede di più :)

questa è la pagina di wikipedia per approfndire:
http://it.wikipedia.org/wiki/Transistor_a_giunzione_bipolare

ti allego anche una foto di qualche transistor e un ipotetico schema

Freddy65

Arduino 2009

Menny

Grazie mille sia a LucaGilardi per le delucidazioni che a Freddy65 per lo sheild  ;)
Inizierò a procurarmi il BJT e poi una volta approfondito penso che passerò allo sheild  :smiley-mr-green:

LucaGilardi

di nulla, sono contento di poter essere utile con le mie (poche) conoscenze a qualcuno :)
in alternativa allo sheild se sai saldare, anche non in maniera eccelsa, o ti accontenti di un montaggio su breadboard, potresti anche usare un ponte H integrato tipo lm293. L'unica cosa è che devi fare qualche collegamento di più ma costa di meno :)
Con questo integrato ad esempio puoi usare il PWM e un'alimentazione diversa da quella logica (5V) per i motori, gestire due motori separatamente, è protetto dai surriscaldamenti, regge 0,6A per canale e ci sono diversi possibili schemi di collegamento (con o senza l'aggiunta di qualche componente esterno)

questo è il link alla pagina di robotitaly, ma dovrebbero averlo anche in qualche negozio di elettronica nella tua zona
http://www.robot-italy.com/product_info.php?cPath=6_34&products_id=236

uwefed


Ok per me è arabo quello che hai detto  :smiley-mr-green: siccome sono alle prime armi.
Non esiste un modo per erogare via sketch la corrente che mi serve su un pin in modo da far accendere o spegnere il mio motore a piacimento?... per ora velocità e altro non mi servono, voglio solo poter accendere o spegnere il mio motore in base a quello che mi serve; so che magari è banale ma non ci arrivo xD

edit: e se mi appoggiassi ad una batteria esterna per il motore, potrei utilizzare arduino come una sorta di "interruttore" per accendere i motore?

Parliamoci chiaro: se colleghi qualcosa che chiede piú di 40mA a un Pin di Arduino rischi di rompere Arduino. Se metti tensioni piú alte di 5V (anche attraverso il motore) rompi sicuramente Arduino.

@ Menny
comprati un libro su Arduino.

Ciao Uwe

LucaGilardi

il discorso però è sepmre quello :) non puoi gestire correnti elevate o, come ha detto Uwe, tensioni diverse dai 5V direttamente con Arduino. Devi utilizzare un'interfaccia di potenza...ce ne sono altre oltre a quelle che ti abbiamo indicato, ma sono più complesse, inaffidabili o ti fanno fare dei rigiri inutili :)

Menny


@ Menny
comprati un libro su Arduino.

Si, ci stavo facendo un pensierino :)

Go Up