Go Down

Topic: Controllare la velocita' di un vibratore (Read 1 time) previous topic - next topic

paolometeo

May 01, 2012, 05:02 pm Last Edit: May 01, 2012, 05:20 pm by paolometeo Reason: 1
Tranquilli!!!  :D  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

Michele Menniti


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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

paolometeo


uwefed

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

paolometeo

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.

Michele Menniti


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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

paolometeo

#6
May 01, 2012, 11:19 pm Last Edit: May 01, 2012, 11:28 pm by paolometeo Reason: 1
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.

Michele Menniti

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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

paolometeo

#8
May 03, 2012, 07:41 pm Last Edit: May 03, 2012, 07:43 pm by paolometeo Reason: 1
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.


Michele Menniti


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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

paolometeo

#10
May 03, 2012, 10:11 pm Last Edit: May 03, 2012, 10:19 pm by paolometeo Reason: 1
:) 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.

Michele Menniti

#11
May 03, 2012, 10:32 pm Last Edit: May 05, 2012, 08:05 pm by Michele Menniti Reason: 1

:) 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 :)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

paolometeo

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.

Michele Menniti

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

paolometeo

#14
May 06, 2012, 11:00 am Last Edit: May 06, 2012, 01:25 pm by paolometeo Reason: 1
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??

Go Up