Go Down

Topic: Controllare motore con PWM (Read 3274 times) previous topic - next topic

rbino

Ciao a tutti! Questo è il mio primo post su questo forum  :)
Sto cercando di usare un motorino controllandolo con l'Arduino. Non mi interessano cose strane come farlo andare avanti e indietro o variare la velocità perchè lo voglio usare solo come fonte di vibrazione (l'ho tirato fuori da un vecchio cellulare).
Il problema è che ho fatto delle prove alimentandolo a varie tensioni e già a 4,5 volt si scalda troppo. Il progetto finale sarà alimentato da una batteria a 9v.
Ora vi chiedo: controllandolo con il solito schema che ho trovato in giro (quello qui sotto)

e facendo uscire dal pin digitale una PWM con duty cycle del 33% funzionerebbe tutto bene o ci sarebbero problemi dovuti ai picchi di 9v dell'onda? Come transistor va bene un 2N3904? E poi (ultima domanda) ho letto da qualche parte che bisognerebbe mettere un diodo in antiparallelo al motore per evitare che i picchi di tensione dovuti al carico induttivo danneggino il transistor... visto che vorrei mantenere il tutto più compatto possibile, è indispensabile o se ne può fare anche a meno?
Grazie a tutti in anticipo!

uwefed

ciao rbino

Pensa un po come funziona un motorino nel cellulare. gira qualche secondo intervallato da pause di altri secondi in tutto al massimo 30 secondi.
Viene alimentato da 3,3V (presumo visto che una tensione standard dei integrati é 3,3V) e in complessivo gira forse 15 secondi nel arco di mezz ora?
Ha tutto il tempo di rafreddarsi tra una chiamata e l' altra.

In poche parole non é fatto per girare di continuo.

Ciao Uwe


rbino

Sì sì ma infatti io lo userei come è usato nel cellulare, lo farei vibrare per intervalli relativamente brevi (al massimo 10-20 secondi) e poi lo terrei spento per N minuti. Effettivamente ragionandoci meglio nei periodi "ON" sarebbe meglio fare brevi tratti ON-OFF (come effettivamente fa il cellulare). Ad esempio, se deve stare acceso 30 secondi, farlo stare acceso 2 sì e 2 no per 15 volte, o cose del genere. Poste queste condizioni, ci sono altri problemi dovuti ai 9 volt sul motore?

uwefed

sí 9V sono troppi.
Prendi uno stabilizzatore di tensione per 3,3V. se scegli uno con un pin di enable puoi pilotare il motore cosí.

Ciao Uwe

superkulak

Il diodo si usa quando l'energia accumulata dall'induttore (il motore od il rele') puo' danneggiare il transistor se liberata nel circuito (leggi, quando viene spento il motore od il rele'). Nel caso di motori cosi' piccoli, non credo sia necessario, dipende dalla corrente che scorre nella (e dall'induttanza della) bobina.

niki77


Sto cercando di usare un motorino controllandolo con l'Arduino. Non mi interessano cose strane come farlo andare avanti e indietro o variare la velocità perchè lo voglio usare solo come fonte di vibrazione (l'ho tirato fuori da un vecchio cellulare).
Il problema è che ho fatto delle prove alimentandolo a varie tensioni e già a 4,5 volt si scalda troppo. Il progetto finale sarà alimentato da una batteria a 9v.
Ora vi chiedo: controllandolo con il solito schema che ho trovato in giro (quello qui sotto)

e facendo uscire dal pin digitale una PWM con duty cycle del 33% funzionerebbe tutto bene.....


Riesumo questo post per un problema analogo onde evitare di aprire discussioni inutilmente.

Ieri sera stavo appunto giocando con uno schema come quello in quota, con la sola aggiunta del diodo in parallelo al motore, pin pwm 9 su arduinouno, ed il transistor un TIP122.
Ho scoperto mio malgrado che pilotando il pin in digitale , ovvero digitalWrite(9,1) , il motore giustamente parte a tutta velocità, mentre invece con analogWrite(9,x) quest'ultimo non proferisce parola.
Con X intendo valori da 1 a 254, mentre invece questo inizia a girare alla massima potenza con analogWrite(9,255).

Sono sicuro che mi sfugge qualcosa, tempo fà ho fatto un regolatore pwm analogo pilotato da un NE555 e questi pare funzionare egreggiamente.

Grazie a tutti per l'aiuto.
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

ratto93

Sei sicuro che il diodo di ricircolo sia collegato correttamente?
Se corri veloce come un fulmine, ti schianterai come un tuono.

niki77

Ho pensato che se fosse collegato male il diodo ( cosa improbabile ) il motore non  avrebbe dovuto comunque girare neanche al massimo della velocità (ovvero con in base il +5 dell'arduino).
Comunque il diodo sta posto in parallelo al motore con l'anodo lato collettore, catodo lato +vcc.

P.S. le masse delle 2 alimentazioni (arduino e vcc motore) sono in comune.
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

uwefed


Riesumo questo post per un problema analogo onde evitare di aprire discussioni inutilmente.

Ieri sera stavo appunto giocando con uno schema come quello in quota, con la sola aggiunta del diodo in parallelo al motore, pin pwm 9 su arduinouno, ed il transistor un TIP122.
Ho scoperto mio malgrado che pilotando il pin in digitale , ovvero digitalWrite(9,1) , il motore giustamente parte a tutta velocità, mentre invece con analogWrite(9,x) quest'ultimo non proferisce parola.
Con X intendo valori da 1 a 254, mentre invece questo inizia a girare alla massima potenza con analogWrite(9,255).

Sono sicuro che mi sfugge qualcosa, tempo fà ho fatto un regolatore pwm analogo pilotato da un NE555 e questi pare funzionare egreggiamente.
Grazie a tutti per l'aiuto.


Che motore hai?
Ciao Uwe

niki77

Il motore è un piccolo motore elettrico ricavato da un auto radiocomandata (molto vecchia).
Non è un brushless, ha solo 2 contatti, ergo ne ho dedotto possa essere il classico motore a spazzole.

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

ratto93

Strano.....
Che IC usi per pilotarlo.. intendo il transistor oppure il mosfet....
Se corri veloce come un fulmine, ti schianterai come un tuono.

niki77

Ma veramente lo schema che ho usato è quello sopra.
Il tip122 è un transistor darlington se non sbaglio.
Nessun altro componente al di fuori dello schema sopra ( e del diodo ) è stato utilizzato .
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

ratto93

Il tip 121 si è un darlinton ma il 122 non te lo so dire... prova a cambiare resistenza forse in base ha troppa poca corrente mettila da 470ohm o 330ohm....
Se corri veloce come un fulmine, ti schianterai come un tuono.

niki77

Difatto il TIP122 fa parte della stessa famiglia, 120-121-122 , tutti darlinghton con caratteristiche leggermente diverse, tipo tensione collettore-base e collettore - emettitore più alti ( a salire da 60v del 120 a 100v del 122).
Hanno però tutti un hfe di 1000, quindi mi pare abbastanza strano che la resistenza da 1k non fornisca sufficiente corrente ... però tentar non nuoce.

E' che non vorrei 'spillare' troppo alle uscite del microcontrollore....

Potrei tentare a sostituire sennò il motore con un altro carico, tipo un led ( con opportuna resistenza ).
Delirio o può essere un test attendibile?
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

ratto93

Si può andare ma se è un led sta attento all'alimentazione e mettici sempre una R di limitazione....
Se corri veloce come un fulmine, ti schianterai come un tuono.

Go Up