Vai al contenuto
PLC Forum


Acquisire Una Frequenza - va bene questa idea ?


stefano_

Messaggi consigliati

Salve a tutti,

vorrei sapere se è possibile con un pic 16f628 o 16f84 acquisire una frequenza in ingresso compresa tra

1 e 500 Hz per esempio e poi in base alla frequenza attivare alcune uscite, per esempio se la frequenza

è compresa tra 1 e 150 attivo RB0

se invece è compresa tra 150 e 300 attivo RB1.

Baseta il PIC o devo utilizzare componenti esterni ( a parte il circuito per acquisire l'onda quadra ) ?

Potete darmi una semplice spiegazione di come procedere ??

Vi dico la mia cosi mi potete picchiare,

mi sembra un pò troppo semplice comunque non si sa mai:

acquisisco l'onda quadra su RB0 (per esempio) e poi da programma calcolo la variazione di stato di

RB0 nell'arco di tempo di 1 secondo il risultato sarà la frequenza che ho.

Quante C _ _ _ _ _ E ho detto con 4 righe ??????

Grazie 1000 a tutti

PS. che frequenza di campionamento posso raggiungere con un 16F84 o 16F628 con quarzo da 4Mhz ???

Link al commento
Condividi su altri siti


Federico Milan

Non conosco il pic, ma perchè invece non utilizzi un ingresso a interrupt, ed ogni volta che rilevi il fronte incrementi un contattore, quindi dopo un secondo leggi il contattore e questa è la frequenza misurata!

Ovviamente resetterai il contattore una volta letto la frequenza.

ciao

Link al commento
Condividi su altri siti

Praticamente tutti i microcontrollori hanno a disposizione ingressi abbastanza veloci e timer adeguati all'esigneza che poni.

Io non uso granchè i pic per ora viaggio con altri tipi di micro, ma ad esempio con il BX24 puoi mettere un timer che parte al primo fronte d'onda quadra e si ferma al secondo fronte. Misurato il tempo (periodo) hai immediatamente la fequenza (f=1/T) e quindi regolare le scelte via software.

Non so come sia un possibile listato con l'assembler del pic ma con comandi basic sono 4 righe contate incluse quelle di assegnazione del pin di ingresso.

Buon lavoro

Link al commento
Condividi su altri siti

La cosa più semplice che puoi fare è collegare il tuo segnale all'ingresso interrupt del PIC (RB0 se ricordo bene). Poi con il timer interno generi un interrupt a tempo, con il tempo di durata conveniente 100 ms p.e.

l'interrupt HW, del segnale di cui vuoi misurare la frequenza, incrementa un contatore. Quando scade il temporizzatore leggi il contatore, memorizzi il valore, azzeri il contatore. Il valore momorizzato è proprozionale alla frequenza. Se la base tempi è pari a 100 ms basterà moltiplicare il valore per 10.

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...