Pages: [1]   Go Down
Author Topic: Controllare la velocita' di un vibratore  (Read 1734 times)
0 Members and 1 Guest are viewing this topic.
cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tranquilli!!!  smiley-grin  Sto parlando di un microvibratore, quelli che stanno nei cellulari. Recentemente ho acquistato qualcuno di quelli a pasticca da 3 V, diametro 10 mm e spessore 3. Per chi non li conosce si tratta di micromotori con una massa eccentrica sull'asse. Quando ruotano provocano una vibrazione.
Mi sto interessando a progetti che usano il microvibratore, posto a contatto con la pelle, per segnalare ad esempio la distanza di un oggetto, usando un sonar, oppure qualche altra grandezza. Naturalmente vorrei poter variare l'intensita' della vibrazione affinche' sia proporzionale alla grandezza rilevata. Ad esempio ostacolo piu' vicino = vibrazione piu' forte. Questi motorini assorbono circa 80 mA a 3 V, pertanto ho dovuto inserire il vibratore tra il collettore e l'alimentazione +5 di un NPN BD139 con l'emettitore a massa. Sulla base ho messo una resistenza da 12 K collegata ad un pin digitale di arduino predisposto per l'uscita PWM. Con questo semplice circuito, variando l'uscita PWM tra 100 e 250 circa riesco a far andare il vibratore tra 0 e massimo di intensita' .
Fin qui sarebbe tutto bellissimo, il problema pero' e' che questi motorini qualche volta non partono, devono essere scossi un po'. Allora ho pensato di farlo prima partire alla massima tensione e poi ridurre la velocita' al valore voluto. Pero' non sono soddisfatto perche' non sempre funziona.
Qualcuno ha avuto esperienza su questo argomento??

grazie
« Last Edit: May 01, 2012, 10:20:59 am by paolometeo » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Chiedo scusa, nella descrizione di prima, e' l'emettitore del BD139 che sta a massa, ovviamente.
Potevi modificare direttamente il post iniziale, anzi sarebbe preferibile che lo facessi, così non lasci l'errore.
Forse è un problema di spunto, nel senso che il picco di assorbimento all'avvio richiede una base di energia che non gli viene fornita in modo adeguato. Prova a mettere un condensatore elettrolitico da 100µF tra il punto di contatto tra 5V e motorino e la massa. Il condensatore, sempre alimentato e sempre carico, dovrebbe dare una mano allo spunto. Se necessario puoi aumentarne il valore.
Logged


cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie, provo e ti faccio sapere.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21938
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prova di far partre il motore per un breve periaodo con PWM 255 e po riduci alla velocitá desiderata. Il tempo della partenza a tutta velocitá devi trovarlo esperimentando.
Ciao Uwe
Logged

cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Niente, ho provato sia con il condensatore che con la massima PWM, ogni tanto non parte. Ho provato anche alimentando il vibratore con due pile da 1,5 e una volta su tre non parte. Potrei provare a farlo partire con 5 volt per un attimo e poi abbassando a 3. Mi complica pero' notevolmente il circuito.
Provo anche a cambiare vibratore. Vediamo.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Niente, ho provato sia con il condensatore che con la massima PWM, ogni tanto non parte. Ho provato anche alimentando il vibratore con due pile da 1,5 e una volta su tre non parte. Potrei provare a farlo partire con 5 volt per un attimo e poi abbassando a 3. Mi complica pero' notevolmente il circuito.
Provo anche a cambiare vibratore. Vediamo.
ma questi tentativi alla cieca significa che non conosci le specifiche di questo oggetto? P.es. conosci il cellulare che lo ospita, almeno puoi risalire alla tensione della batteria.
Logged


cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho comprato i motorini su ebay, non so per quali cellulari sono progettati e non ho il datasheet, so solo che vanno a 3 V. Su di loro non c'e' alcuna sigla. Ne ho provato un altro ma fa lo stesso scherzo. Potrei provare a farlo partire con una tensione maggiore, per esempio 5 V, poi abbassarla subito. Mi sembra pero' una cosa innaturale!
MI e' venuta un'altra idea. Puo' essere che 3 V non bastino in quanto i cellulari vanno a 3,3 V. Domani provo a diminuire la resistenza sulla base in modo da far passare piu' corrente nel transistor e quindi nel motore.
« Last Edit: May 01, 2012, 04:28:53 pm by paolometeo » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ora che leggo la R di base mi sembra effettivamente alta; io piloto i transistor con 1K, non vorrei che non stesse andando in saturazione. Dovresti misurare la tensione ai capi del vibratore quando gira o dovrebbe girare. Inoltre se il vibratore lavora a 3,3V e tu usi la tensione di 5V, quando il PM è a 255 gli spari 5V, secondo me non gli fanno bene smiley-eek-blue
ALtra cosa, non ho capito bene se quando hai fatto la prova con le batterie le hai collegate direttamente al vibratore o sembre tramite il transitor.
Io penso che alla fine sul collettore devi mettere una tensione da 3,3V, oppure lasci quella da 5V ma inserendo una R di limitazione calcolata per 100mA; il transistor deve poter lavorare in saturazione, è il pwm che poi dovrà gestire la vibrazione.
Poi esiste la possibilità che, come per il pilotaggio delle ventole, tu debba aggiungere un filtro RC sulla base, in modo da "trasformare" parzialmente il segnale pwm in una variazione di tensione.
Logged


cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La tensione ai capi del vibratore e' vicino ai 3V. Provo a diminuire la resistenza sulla base, come dici tu, ma mettendo una resistenza sull'emettitore o in serie al vibratore per limitare i 5 V e far si che al viabratore arrivino al massimo 3.5. Le prove con le due ministilo le ho fatte direttamente sul vibra.

« Last Edit: May 03, 2012, 12:43:07 pm by paolometeo » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La tensione ai capi del vibratore e' vicino ai 3V. Provo a diminuire la resistenza sulla base, come dici tu, ma mettendo una resistenza sull'emettitore o in serie al vibratore per limitare i 5 V e far si che al viabratore arrivino al massimo 3.5. Le prove con le due ministilo le ho fatte direttamente sul vibra.
Con le batterie dirette sul vibratore (mi fa senso parlare di questo oggetto, non è che possiamo chiamarlo in altro modo, comprendendoci ugualmente? P.es. BUZZER, che è una cosa diversa ma vibra comunque smiley-mr-green?) dovrebbe partire senza problemi, 0,3V in meno non credo siano un gran problema. Non vorrei che esista una tecnica specifica per alimentarlo (p.es. un segnale con una frequenza molto elevata). Cioè se non ti parte direttamente con le pile la vedo un po' male. Proviamo:
R da 1K sulla base
Collettore a 5V
Emettitore ad una R da: 5-3,3V/0,1=17--> 18 ohm (almeno un paio di watt!!)
L'altro capo della R al BUZZER, l'altro capo del BUZZER a massa.
Logged


cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley Adesso le cose sembrano migliorare!! Ho messo il BUZZER tra emettitore e massa, senza resistenza, (non l'avevo a portata di mano). Poi ho programmato Arduino per far uscire PWM a 200 per mezzo secondo e subito dopo PWM del valore voluto per tre secondi (da 30 a 200). Probabilmente perche' il mottore ha bisogno di massima potenza allla partenza e poi si puo' farlo rallentare anche al minimo.
La resistenza sulla base e' 1K. BD139 non scalda. Ho anche controllato la tensione ai capi del buzzer e misura circa 3 al massimo di PWM. Per sicurezza ho collegato un diodo invertito ai capi del buzzer come si fa per i rele'.  Prima di considerarmi soddisfatto vorrei farlo andare a lungo cosi' da testarlo bene.
« Last Edit: May 03, 2012, 03:19:09 pm by paolometeo » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

smiley Adesso le cose sembrano migliorare!! Ho messo il BUZZER tra emettitore e massa, senza resistenza, (non l'avevo a portata di mano). Poi ho programmato Arduino per far uscire PWM a 200 per mezzo secondo e subito dopo PWM del valore voluto per tre secondi (da 30 a 200). Probabilmente perche' il mottore ha bisogno di massima potenza allla partenza e poi si puo' farlo rallentare anche al minimo.
La resistenza sulla base e' 1K. BD139 non scalda. Ho anche controllato la tensione ai capi del buzzer e misura circa 3 al massimo di PWM. Per sicurezza ho collegato un diodo invertito ai capi del buzzer come si fa per i rele'.  Prima di considerarmi soddisfatto vorrei farlo andare a lungo cosi' da testarlo bene.
AL massimo pwm intendi 200 o 255? Nel secondo caso sarebbe strano che ci siano 3V, magari misura anche sul collettore per vedere se non sta "cedendo" l'alimentazione. Comunque fammi sapere, sono curioso smiley
« Last Edit: May 05, 2012, 01:05:27 pm by Michele Menniti » Logged


cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono tornato!!
Ho fatto alcune prove e le ho ripetute un bel po' di volte.  Sembra che il buzzer si riesca a controllare con tensioni più basse di 3 V. Bisogna però avviarlo sempre al massimo e poi scendere di tensione.  Lo schema elettrico è quello nel disegnino dove ho riportato anche le variazioni di tensione ai capi del buzzer in funzione dell'output PWM di Arduino.
Adesso andrò avanti con il progetto che è quello di applicare il buzzer al manico di un bastone da passeggio, assieme ad un sonar che rilevi distanze tra 1 e 6 m, ho già provato il LV-MaxSonar-EZ0. Magari farò sapere i risultati in un altro topic.


* circuito.jpg (86.92 KB, 1087x1039 - viewed 36 times.)
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova ad aumentare il C a 10µF
Logged


cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

adesso si sono sovrapposti casini legati alla seriale. Non so come mai, il collegamento tra pc e arduino va e viene. ho provato ad alimentare arduino in modo autonomo ma non cambia. Ho gia' provato a sostituire la board senza risultato, adesso provo con il cavo.
Ho provato a cambiare cavo, ma i problemi rimangono. Come se il PC ogni tanto si scollegasse dalla seriale. Anche cambiando presa USB. Sara colpa del windows 7??
« Last Edit: May 06, 2012, 06:25:29 am by paolometeo » Logged

Pages: [1]   Go Up
Jump to: