Vai al contenuto
PLC Forum


Frequenzimetro con 16f876


Simons

Messaggi consigliati

Salve a tutti...

Avendo in progetto la piccola board col 16f876 descritta nella sezione elettronica, vorrei riuscire a pilotare in PWM 4 ventole (cooler master brushless che a 12v fanno 2500rpm e sul filo tachimetrico si legge circa 85Hz) e leggere l'uscita del filo del sensore tachimetrico della ventola con lo stesso pic che genera il PWM. Pensavo di usare l'ingresso RB0, visto che possiede già l'interrupt interno.

Un paio di domandine:

per la parte circuitale, siccome i segnali che dovrei andare a misurare hanno un'escursione largamente maggiore di 5v (dai 12v ai 24v e se non mi sbaglio anche escursioni tipo di +/-12v o +/-5v) dovrei metterci in ingresso al RB0 uno stadio che non faccia superare la soglia di 5v sennò il pic si sciupa.

Cosa consigliate?

altra domanda pratica: di solito per pilotare in pwm un motore in continua tipo questi delle ventole, che frequenze si usano?

per la parte del software avevo pensato di farla in questo modo:

premetto che uso CCS C Compiler

(usando un quarzo a 20Mhz)

Imposto il pin RB0 in modo che sia solo in ingresso e attivo l'interrupt su tale pin.

Con la routine di interrupt del rb0 incremento una variabile (diciamo di tipo long a 16 bit così ho fino a circa 65000 conteggi)

Con l'interrupt del timer0 (o timer1 o 2 visto che ce ne sono 3 di timer interni) impostato a 1 secondo, memorizzo il valore dei conteggi in una variabile temporanea e resetto la variabile di conteggio. In questo modo il pic può ricominciare a contare e io ho già la frequenza nella mia variabile temporanea.

Con il quarzo a 20Mhz e il timer0 riesco a fare l'interrupt preciso a 1 secondo? Oppure mi conviene usare il timer1?

per finire , visualizzerei il tutto su un display che verrà gestito dalla main() del programma e un paio di pulsanti per comandare il tutto.

Vi ringrazio tantissimo dell'aiuto!! Vi sarei infinitamente grato se riuscissi a realizzare il tutto!!!!! smile.gif

saluti

Simone

Link al commento
Condividi su altri siti


A voler essere pigri, se usi il CCS, nella directory EXAMPLES trovi sia la routine che fa da frequenzimetro che quella che genera il PWM!

Per leggere tensioni di ingresso superiori a quella di alimentazione del PIC puoi utilizzare una rete composta da una resistenza da 10Kohm in serie al pin di ingresso e due diodi, il primo con A a GND e K sul pin, il secondo con A sul pin e K su +5V.

Ciao.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao

Per il condizionamento del segnale di ingresso puo' essere sufficente una combinazione di resistenza + diodo zener ed un diodo normale per la protezione contro le tensioni inverse

In alternativa ti consiglio pero' di optoisolare il circuito anche perche' il pic, come qualsiasi altro chip, e' delicato e' molto sensibile ad eventuali scariche anche di lieve entita'

Correnti spurie indotte dagli spunti degli avvolgimenti del motore possono accoppiarsi con il segnale e distruggere il tuo povero pic ....

La scelta della frequenza del PWM e' argomento piuttosto complesso ma nel tuo caso non ti preoccupare piu' di tanto visto che il rendimento non e' un obbiettivo primario. Con semplici circuiti drivers potresti tranquillamente utilizzare frequenze sull'ordine del 5-40 Khz ... fai delle prova anche perche' la natura del tuo motore non e' nota ....

(queste cose molte volte sono piu' arte che scienza)

Ciao

Furno Gianluca

Link al commento
Condividi su altri siti

mshadow65+16/03/2008, 17:52--> (mshadow65 @ 16/03/2008, 17:52)

ciao grazie della risposta!

il motore è un comune motore in continua brushless di quelli che si trovano nelle ventole da PC.. assorbimento tipico è sui 2W credo.. ma può variare a seconda della dimensione della ventola...

ho notato da altri esperimenti con queste ventole, che durante la fase di spegnimenti (cioè quando tolgo corrente alla ventola) si ha per qualche secondo una tensione ai capi della ventola a causa della corrente indotta..

la soluzione dell'optoisolatore è ottima! ma una domanda.. gli optoisolatori di solito sono di tipo NPN (esempio il 4N25 che ne ho a carrellate in casa) quindi dovrei pilotare ad esempio un darlington o simile ma di tipo PNP o posso comunque pilotare un transistor general purpose NPN tipo il BD437?

Link al commento
Condividi su altri siti

Il 4N25 puo' andare benissimo, verifica solo la banda passante necessaria (questo dipende dal tuo encoder e relativa frequenza di uscita).

Esistono optoisolatori NPN, PNP ma anche con uscita a trigger o comunque amplificata. Diciamo che per applicazioni discrete ed economiche l'uscita NPN e' una delle piu' comuni.

Il transistor NPN in uscita puo' essere utilizzato come qualunque altro transistor per cui puoi continuare la catena di amplificazione utilizzando altri transistor oppure irrobustendo il segnale con amplificatori o inseguitori. Se devi solamente pilotare un piedino del pic non serve altro che una resistenza opportunamente calcolata

Ciao

Furno Gianluca

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...