Relè, transistor e motori!

Salve a tutti,
come avrete capito dal titolo ho le idee abbastanza confuse su quegli argomenti :slight_smile:
Per ora sto cercando di colmare le mie lacune di elettronica ed elettrotecnica, ma alcune cose non mi sono chiarissime.

Mi piacerebbe poter fare qualche esperimento con Arduino e dei motori (al momento posseggo quelli dello starter kit FuturaNet: Il portale per makers ed elettronica by Futura Group) ma vorrei capire meglio come fare a pilotarli...
Ho letto che è sconsigliato collegarli direttamente ad arduino (eventualmente con resistenza in serie), ma non ho capito bene il perchè (c'entrano gli effetti induttivi del motore?).
Inoltre non ho capito quando conviene usare transistor o relè per pilotare in generale un carico...
Insomma, ho molto da imparare :stuck_out_tongue:

Avete qualche consiglio o link o altro per aiutarmi a capire queste cose?
Ciao e grazie per l'attenzione

I motori spedsso hanno bisogno di correnti altine che la USB non puó fornire. Oltre quello un motore DC con comutazione a spazole crea disturbi che interferiscono con l' elettronica. Per questo é meglio alimentarli con una tensione esterna.
Visto che i motori assorbono piú corrente di quello che il controller su Arduino puó dare serve un "dispositivo di azionamento". Puó esserlo un relé ma anche quello puó creare problemi. Comunque serve un transistore per pilotare il relé. A questo punto é meglio lasciare via il relé e collegare il transistore direttamente al motore.
Se il motore deve girare solo in un verso: http://www.smartsurfaces.net/transistor
Se vuoi pilotarlo in tutti 2 i versi ti serve un Ponte H per esempio un L293D.
http://www.lizarum.com/assignments/physical_computing/2008/motors.html (ci sono tutti 2 le possibilitá.

Con un transistor o il ponte H hai la possibilitá di pilotare il motore in PWM e percui regolare la velocitá. con un relais non é possibile perché comuta troppo lentamente.

Ciao Uwe

Grazie mille Uwe, come sempre sei molto disponibile.
Vorrei provare a realizzarli entrambi, ma intanto inizio dal primo :slight_smile:

Avrei però delle domande:
-Nella guida viene utilizzato un TIP120, mentre io ho un Transistor NPN BC547B (in dotazione nello starter kit). Posso utilizzare il mio?
-Perchè nel circuito inserisce un potenziometro? é necessario?
-Nel mio starter kit c'è anche un "Driver doppio full bridge per motori DC e motori passo passo", ma non ho capito bene che vantaggi si hanno usandolo :slight_smile:

Quì ci sono tutti i componenti in dotazione con lo starter kit che ho acquistato:

Ciao e grazie ancora :slight_smile:

il BC547 regge solo 100mA. Se il Motore assorbe di piú lo rompi sul lungo andare (non subito ma dopo qualche minuto) I motori sono per 3V e 300mA. I dati del Transistore li trovi quá: http://www.datasheetcatalog.org/datasheet/stmicroelectronics/8854.pdf Il valor importante é Ic, la corrente massima sul collettore.

Driver doppio full bridge per motori DC e motori passo passo é un L298, il fratello maggiore del L293D. I problemi sono 2: ha i piedini disposti in modo poco pratico per inserirlo nella breadbord e ha bisogno di diodi di protezione che il L293D ha giá integrato.

Il potenziometro viene usato per regolare la velocitá e il senso di rotazione del motore ( vedi esempio di programma incluso nel secondo link). Viene letto con una entrata analogica e pilotato il motore in PWM a secondo della posizione del potenziometro. Puoi usare quello lineare del Kit.

Posso esporre la mia critica sul kit: sono dei componenti scelti con poca cura. Il transistor per 800mA non costano uguale (BC337) per i motori forniti basta un L293D al posto del L298 (che costa di meno) Come potenziometro potevano mettere un modello che si inserisce meglio nella breadbord e mi mancano dei diodi (10 pezzi).

Ciao Uwe

Mi sembra di capire che in ogni caso, allo stato attuale, non posso controllare nessun motore con quello che ho...

Per quanto riguarda il driver L298n sono riuscito ad inserirlo nella breadboard, a cavallo tra le due piste principali, inclinando leggermente i piedini.. ma resta in ogni caso il problema dei diodi che non ho! Domani li compro... Vanno bene dei diodi qualsiasi?

Quello che non ho capito è se è possibile controllare la velocità dei motori tramite il driver, oppure ho sempre bisogno dei transistor.
in tal caso compro quelli da 800mA?

Con il transistore li puoi pilotare in velocitá ma solo in un senso.
Con un L293D Li piloti in velocitá e in tutti due i sensi.
Come diodi vanno bene dei 1N4007 (1000V 1A) Li trovi dapertutto.
Si, con un po di improvisazione riesci inserirlo nella breadbord. Ma un DIP sarebbe moooolto piú semplice.

Compre qualche transistore BC337, 10 diodi e un L293D ( la versione D, perchè esiste anche quella senza la D dove mancano i diodi) e 10 resistenze da 1kOhm.

Ciao Uwe

Grazie mille... allora domani vado a fare la spesa :wink:
Degli ultimi chiarimenti...
Cos'è un DIP?
Perchè mi consigli di comprare il L293D se posso utilizzare il mio L298N con i diodi?

DIP ... Dual in line Package; i piedini in 2 file come maggior parte dei integrati non SMD (surface mounting device).

Perchè mi consigli di comprare il L293D se posso utilizzare il mio L298N con i diodi?

È meglio da inserire nella bradbord, ma senó puoi provare anche con il L298.

Guarda quanto costa una breadbord piú grande (li ho trovati intorno ai 9 €) e qualche metro di doppino telefonico per fare il cavetti da mettere nella breadbord.

Ciao Uwe

Ok, allora seguirò i tuoi consigli!
Per la breadboard, per fortuna ne avevo già una più grande di quella in dotazione

Grazie ancora, ciao! :slight_smile:

Guardando il catalogo del negozio da cui mi rifornirò più tardi ho notato che ci sono due tipi di BC337:
il BC337-25 e il BC337-40
Quale devo prendere?

Questo è un datasheet che li mette a confronto:

Tu mi hai detto che il valore che mi interessa è la corrente massima sul collettore, e per entrambi credo che sia 0.5A
L'unica cosa che cambia è il guadagno di corrente.. mi interessa?

Vanno bene tutti due; se non costano troppo in piú prendi il BC337-40
Ciao Uwe

Aggiornamento... sono andato a comprare quelle cose ma non ho trovato il driver..
Per i transistor ho preso tre BC337-25 (0.10€ ciascuno) e tre BC639-029 (0.30€ ciascuno) perchè mi hanno detto che supportano una corrente leggermente superiore. Come diodi invece ho preso dieci IN4007 come mi hai detto tu.
Vanno bene? Che ne pensi dei prezzi?

Ho trovato un sito che vende 4000 BC337-25 per 75 Euro che sono quasi 2 Cent a pezzo. :wink:
Per il Tuo aquisto: Non farti problemi, sono prezzi normali se lo compri in un negozio. Poi lo hai in mano senza aver perso 2 ore per trovare il sito meno costoso, averlo ordinato e aspettamdolo per 5 giorni. Il trasporto non lo hai pagato che dovresti aggiungere al prezzo in caso di ordine.
Ciao Uwe

Il problema è che 4000 transistor sono un pò troppi per me :slight_smile:

Sto realizzando il circuito da te consigliato
http://www.smartsurfaces.net/transistor

Ma ho alcuni dubbi:
-è necessaria la resistenza tra il pin 9 e il transistor? E se si, in base a cosa si determina il valore? (in questo caso 1kOhm)
Dal datasheet del transistor che viene usato nell'esempio (TP120 http://bit.ly/g3aI6L) ho visto che la corrente massima che può attraversare la base è di 120mA, ma se non ricordo male Arduino ne può erogare molto meno; Invece la tensione tra base ed emettitore può essere di 5V, che è proprio quella dei pin di Arduino.
Ad esempio quest'altro schema che ho trovato non fa uso di resistenze: http://bit.ly/fLjdHu

-Siamo d'accordo sul fatto che il diodo serve ad evitare di danneggiare arduino con le "correnti di kickback" causate dal motore.
Ma allora perchè viene collegato in parallelo tra collettore ed emettitore e non direttamente al pin 9?
Usandolo così, percorrendo il circuito in un senso si avrà un circuito aperto, mentre nell'altro si avrà un cortocircuito tra E e C.

supergiox:
Ma ho alcuni dubbi:
-è necessaria la resistenza tra il pin 9 e il transistor? E se si, in base a cosa si determina il valore? (in questo caso 1kOhm)

Per proteggere l'arduino.

supergiox:
-Siamo d'accordo sul fatto che il diodo serve ad evitare di danneggiare arduino con le "correnti di kickback" causate dal motore.
Ma allora perchè viene collegato in parallelo tra collettore ed emettitore e non direttamente al pin 9?
Usandolo così, percorrendo il circuito in un senso si avrà un circuito aperto, mentre nell'altro si avrà un cortocircuito tra E e C.

Il diodo serve per proteggere il transistore non l' uscita del Arduino. Per questo va messa sul transistore oppure in antiparalello al motore.
Ciao Uwe

Si, ho capito che resistenza e diodo servivano per protezione (di arduino e del transistor)... Forse mi faccio un pò troppe domande, ma volevo capire meglio cosa succede dal punto di vista elettrico.

La resistenza (provo a rispondermi solo) forse serve a limitare il passaggio di corrente nel caso in cui il transistor ne richieda più di quanto Arduino possa dargliene. E' così? E come calcolo il valore in Ohm?

Per il diodo messo in antiparallelo ancora non ho trovato spiegazione...

up ?

Ciao!
Mi inserisco nella conversazione perche mi sembra che un argomento simile.
Avrei bisogno semplicemente di alimentare un motore dc per diciamo 20 sec, poi metterlo in pausa per 5 e farlo ripartire... e cosi via...
Ho trovato il motore in un vecchio giocattolo, probabilmente cinese e quindi non conosco nessun dato.
Ho provato a collegarlo direttamente all'arduino tra 5V e GND e va velocissimo anche carico (so che non si deve fare, ma era solo una prova), il problema è che per gestirlo ho usato questo circuito:

transistor C547B W
diodo IN4007BL

Ora però il motore va abbastanza veloce se scarico, ma se lo carico un po non si muove, o va lentissimo.

Qualcuno sa indicarmi dove sbaglio o cosa potrei migliorare?!

Grazie

Il BC547 sopporta un massimo di 100mA, mentre è probabile che il tuo motore assorba almeno 300 mA sotto carico.

Usa un TIP120 (Darlington) per stare tranquillo.

ok, ci provero! grazie