interpretando uma onda senoidal!

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor verd » 04 Fev 2010 15:47

vich saiu uma maravilha o circuito! heheh
Código: Selecionar todos

                                  10m
                      ______/\/\/\_______
                      |                            |
       1K           |       +2      vcc      |
___/\/\/\_____|_____|\ __| 7        |           
  |                   |        |  \               |           saida
  |                   |        |   \_6______|___________________
  |                   |        |   /
  BOBINA         |   3_ | /__ gnd4
  |                   |    |  |/  _|_
  |         22uf  ==   |        _   
_| _                |   _|_gnd
 _  gnd          _|_     _   
                      _ 


verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor verd » 04 Fev 2010 15:56

Código: Selecionar todos

                                  10m                                                                 
                     ______/\/\/\_________                                                   
                  |                      |                                                     
       1K           |       +2      vcc  |                                                     
___/\/\/\___________|__________|\ __| 7  |                                                           
  |                    |       |  \      |           saida                                   
  |                    |       |   \_6___|___________________                     
  |                    |       |   /                                                                     
  BOBINA               |    3_ | /__ gnd4                                                           
  |                    |    |  |/  _|_                                                                 
  |             22uf  ==    |        _                                                                                 
 _| _                  |   _|_gnd                                                                     
   gnd                _|_gnd                                                                           
                                                                                                         
                                                                                                                                                                                                                   



opa da pra entende!!
Editado pela última vez por verd em 04 Fev 2010 16:06, em um total de 1 vez.
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor Francesco » 04 Fev 2010 15:56

Então Verd,

O caminho é esse sim. A maneira mais simples é você usar dois timers, um configurado como contador e outro como timer de 1 segundo. Toda a vez que o timer de 1 segundo estourar, você lê o contador e zera ele para reiniciar a contagem.

Quanto maior o número de pulsos, maior é a freqüência. Com essa montagem que você tem, dá para verificar a velocidade em relação à freqüência e encontrar a fórmula de cálculo.

O que acha?

Francesco
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Mensagempor verd » 04 Fev 2010 16:08

opa! é por ae mesmo que eu estava matutando!!! valeu francesco!! qq coisa dou mais um grito!! valeu pela força pessoal !!
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor verd » 05 Fev 2010 10:36

pessoal estou montando meu código, to precisando de dicas para clarear as idéias!

utilizei o tmr0 para piscar o led a cada 1 segundo, fiz as contas mas não sei se está correto o calculo de tempo, agora vou colocar um sinal de frequência no pino RC0 onde estou configurando o tmr1 e depois zero o tmr1 na interrupoção.

vejam se estou no caminho certo, faz apenas 2 semanas q peguei o Mikroc e decidi q vou aprender C e fazer meus projetos daqui pra frente tudo em C. asm dá muito trabalho!!

Código: Selecionar todos
unsigned int cnt = 0;

void  interupcao() {
cnt++;
TMR0 =6;
INTCON = 0x20;
PIR1.TMR1IF = 0;
TMR1H = 0x00;
TMR1L = 0x00;

  }
 
 
void main() {
OPTION_REG = 0x80;
TMR0 = 6;
INTCON = 0xA0;


OPTION_REG.T0CS = 0;
OPTION_REG.PSA = 0;
OPTION_REG.PS2 = 0;
OPTION_REG.PS1 = 0;
OPTION_REG.PS0 = 1;

T1CON = 1;
PIR1.TMR1IF = 0;
TMR1H = 0x80;
TMR1L = 0x00;
PIE1.TMR1IE = 1;
INTCON = 0xC0;
PIR1.TMR1CS=1;
PIR1.T1OSCEN=0;
T1CON.TMR1ON=1;

ADCON1 = 0X06;
TRISB = 0;
PORTB = 0x0;

cnt = 0;

while (1){
{
interupcao() ;

if (cnt >= 1000) {
PORTB.f0 = ~PORTB.f0;
cnt = 0;
//INTCON =0;
}
}
}
}
/* clock 4mhz!!
Valor inicial do TMR0 = 256 – 250 =6
Calculando o tempo do timer0 x prescaler = tempo do estouro do timer0
Tempo do timer0 = 250
prescaler = 4
Tempo do estouro do timer0 = 250 x 5 = 1000us
Tempo do estouro do timer0 = 1000us
Valor do cont = (1s/ 1000us) = (1000000us/1000us) = 1000
cnt = 1000
*/
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor verd » 08 Fev 2010 09:05

estou utilizando a seguinte configuração para o timer 1, vou pegar o sinal da frequencia gerada pelo RC0 e RC1, acredito que estas confugurações estão corretas, minha duvida é o que eu preciso fazer para pegar esse sinal pelos pinos rc0 e rc1?

PIR1.T1OSCEN=1;
OPTION_REG.PS1 = 1;
OPTION_REG.PS0 = 0;
PIR1.TMR1CS=1;
T1CON.TMR1ON=1;
T1CON = 1;


eu preciso capturar o sinal do tmr1H e tmr1L e reseta-los a cada segundo para saber a frequência q estou recebendo, mas estou meio perdido em como fazer isso, sou iniciante em c e não tenho muito a manha para desenvolver as funções!
alguem pode me dar uma luz!!!
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor verd » 09 Fev 2010 15:21

salve pessoal consegui fazer o software para medir a frequência, funcionando ok, qndo coloco no cristal ressonador de 4mhz aparece no display 4000000, até ai blz! ai descobri q meu circuito q leio a bobina não sai frequência alguma!! q bosta! pior q coloco no osciloscópio, consigo pegar uma onda quadrada e qndo assopro o catavento eu mudo o comprimento da onda!

o q eu estou variando? pra mim q era a frequência, será q é muito pouca q meu pic não consegue ler?
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor verd » 09 Fev 2010 15:22

ou será q num tem frequêcia nenhuma nessa minha onda quadrada?
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor Francesco » 09 Fev 2010 15:27

Verd, duas coisas... primeiro, você chegou a olhar com o osciloscópio se o sinal está lá com o circuito ligado no PIC? Se não estiver, algo está matando o sinal. Se estiver, aí realmente pode ser software.

Segundo, realmente pode ser que o software esteja esperando uma freqüência mínima para trabalhar. Você não tem um gerador de sinais? Tente colocar o gerador de sinais na mesma freqüência que o seu sensor estaria gerando, assim você vê se o seu circuito está funcionando.

Francesco
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Mensagempor verd » 10 Fev 2010 16:37

Fala francesco! então coloquei no gerador de sinal e ok! o software está redondo! o problema é o circuito da bobina q gera muito pouca tensão!!
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor Francesco » 10 Fev 2010 16:58

Verd, você não colocou o circuito comparador para transformar o sinal em digital? Na saída do comparador não está saindo pulsos de 0V a VCC?
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Mensagempor verd » 11 Fev 2010 06:48

Eu tinha colocado um LM 10 pq a bobina gera micro tensão e não consegue acionar o comparador, vou colocar o comparador depois dol LM 10 para ver se tenho algum resultado!!
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor Francesco » 11 Fev 2010 10:37

Verd, você montou o esquema com divisor de tensão que falamos? Se montou, não justifica a tensão não estár "acionando" o comparador. Você disse que havia feito o teste e conseguiu um sinal, ele precisa ser digital (0 a VCC). Se não for, a montagem com o comparador não está funcionando.

Estou achando que você não está lendo efetivamente o sinal da bonina, e sim algum ruido. É estranho para qualquer tipo de sensor (menos termopares) dar um sinal de tensão tão baixa.

Francesco
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Mensagempor verd » 11 Fev 2010 12:35

Então francesco num tenho certeza no q o osciloscópio está medindo, peguei a bobina e coloquei em um amplificador LM10 então consegui uma onda quadrada no osciloscópio, quando firava o anemômetro o compimento de onda diminuia no osciloscópio, com o LM339 não tive sucesso logando-o direto na bobina!!
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor verd » 11 Fev 2010 12:58

você diz o divisor de tensão no lm 339? sim montei e não saiu nada! montei igual ao esquema postado pelo mor_al em outro tópico
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

AnteriorPróximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x