Ir ao conteúdo

Posts recomendados

Postado

Olá a todos,

 

Possuo o seguinte sinal, ver imagem em anexo

Este sinal é de um despertador. Com o multimetro consigo medir uns 12mVDC. Mas no oscilóscopio consigo medir um valor de tensão máxima de 456mV (ver esta imagem em anexo). Talvez isso aconteça porque o multímetro não tem a capacidade de medir sinal oscilatórios. Será disso?

 

Pretendo que este sinal seja aplicado em um pino do arduino. O objectivo é quando o sinal estiver activo, o que significa que o despertador está a dar sinal para a coluna, conseguir accionar um processo no arduino. Isso é possível com estes valores de tensão e frequência?

 

Obrigado

tabela.PNG

sinal.PNG

Postado

@ilovepic ,

 

Sim, basta usar a Int0 ou a Int1 como pino de entrada, e programar para interrupção por mudança de estado.

Vai ter de fazer tratamento na rotina de interrupção e pode ser meio chatinho.

 

Ou também pode usar esse sinal na entrada de um Conter, e verificar a contagem de tempos em tempos, usando um timer como base de tempo.

 

Por exemplo, esse seu sinal é de 996 Hertz, o que dá aproximadamente uma contagem a cada milissegundo, certo ?

 

Se programar um Timer para gerar uma interrupção a cada 50 milissegundos, basta verificar o valor da contagem no contador !  Se a contagem passar de 40, acione um flag para sinalizar ao programa principal que esse sinal está presente, e zere o valor do contador para preparar o próximo teste. Se a contagem é inferior a 40, zere tanto a contagem como o flag.

 

Sugiro usar o Timer0 como Counter , e o Timer1 como o Timer para 50 milissegundos.

 

Dessa maneira esse processo de verificar se o sinal está presente fica totalmente automatizado e transparente ao seu programa principal basta ficar monitorando o flag.

 

Mas vai exigir um pouco de conhecimento para fazer isso...

 

Se voce quiser, também pode fazer de uma maneira mais "hard" e menos soft ... :

 

Amplifique esse sinal, para obter algo perto de 4,7 V pico a pico. Retifique o sinal com um diodo, e na saída desse diodo use um circuito RC ( é a mesma coisa que demodular um sinal AM kkk ) , e aplique em uma entrada do Arduino.... quando tiver nível alto é porque o sinal está presente, ok ?  Assim não precisa saber nada sobre Counters e Timers .....

 

Ah, sobre o seu multímetro :

 

Repare que esse sinal aí é um sinal AC, ele varia em torno do zero, e assim o seu multímetro em DC não consegue medir mesmo, pois não existe nenhum nível DC.

 

Existem multímetros com escala em AC que conseguem medir sinais de frequência até 5 Khz, mas são raros ( e caros ) ....

 

 

 

Paulo

  • Curtir 2
Postado
8 minutos atrás, aphawk disse:

@ilovepic ,

 

Sim, basta usar a Int0 ou a Int1 como pino de entrada, e programar para interrupção por mudança de estado.

Vai ter de fazer tratamento na rotina de interrupção e pode ser meio chatinho.

 

Ou também pode usar esse sinal na entrada de um Conter, e verificar a contagem de tempos em tempos, usando um timer como base de tempo. 

 

Por exemplo, esse seu sinal é de 996 Hertz, o que dá aproximadamente uma contagem a cada milissegundo, certo ?

 

Se programar um Timer para gerar uma interrupção a cada 50 milissegundos, basta verificar o valor da contagem no contador !  Se a contagem passar de 40, acione um flag para sinalizar ao programa principal que esse sinal está presente, e zere o valor do contador para preparar o próximo teste. Se a contagem é inferior a 40, zere tanto a contagem como o flag.

 

Sugiro usar o Timer0 como Counter , e o Timer1 como o Timer para 50 milissegundos.

 

Dessa maneira esse processo de verificar se o sinal está presente fica totalmente automatizado e transparente ao seu programa principal basta ficar monitorando o flag. 

 

Mas vai exigir um pouco de conhecimento para fazer isso...

 

Se voce quiser, também pode fazer de uma maneira mais "hard" e menos soft ... :

 

Amplifique esse sinal, para obter algo perto de 4,7 V pico a pico. Retifique o sinal com um diodo, e na saída desse diodo use um circuito RC ( é a mesma coisa que demodular um sinal AM kkk ) , e aplique em uma entrada do Arduino.... quando tiver nível alto é porque o sinal está presente, ok ?  Assim não precisa saber nada sobre Counters e Timers .....

 

Ah, sobre o seu multímetro :

 

Repare que esse sinal aí é um sinal AC, ele varia em torno do zero, e assim o seu multímetro em DC não consegue medir mesmo, pois não existe nenhum nível DC.

 

Existem multímetros com escala em AC que conseguem medir sinais de frequência até 5 Khz, mas são raros ( e caros ) .... 

 

 

 

Paulo

Obrigado pela excelente resposta.

Ora bem, pelo timer nem sabia que isso dá para fazer no arduino (kkk). Sim, isso ainda está muito á frente para mim. Mas me incentiva a estudar.

Vou tentar pelo díodo e acoplar um circuito RC.O circuito RC que fala já existe ou terei eu que calcular? Se sim, como calculo o condensador? Pelo que percebo o díodo tornar a onda assim (ver imagem com nome diodo).

E o circuito RC irei tornar a onda em uma onda quadrada, o mais perfeita possível (ver imagem RC). Certo?

 

Relativamente ao sinal pensei que o mesmo fosse DC. Você diz que o sinal é AC pois tem uma parte negativa na onda quadrada. É por isso?

 

Testei com um multímetro que tem a opção de 20kHz. O que aparece no dispositivo é o valor .70. Isto significa que está a medir um sinal de 700Hz, correcto?

 

Valeu

 

 

diodo.png

RC.png

Postado
2 horas atrás, ilovepic disse:

Ora bem, pelo timer nem sabia que isso dá para fazer no arduino (kkk). Sim, isso ainda está muito á frente para mim.

 

Hehehe dá para fazer com qualquer microcontrolador, seja Pic, AVR, etc ...

 

Um Arduino Uno tem dentro um Atmega328P, um AVR bem poderoso, basta saber usar o que tem dentro dele !

 

Antigamente não se falava em Timer ou Counter, mas sim em um módulo chamado Timer/Counter, porque ele pode ser programado para fazer as duas coisas, contar a frequência do Clock ou contar uma frequência externa ( que é o seu caso, e dessa maneira faz a função de Counter ). E no Arduino temos acesso a três Timers/Counters, mas só dois deles podem ser usados como Counter.

 

É igualzinho ao que faz um Pic .....

 

2 horas atrás, ilovepic disse:

Vou tentar pelo díodo e acoplar um circuito RC.O circuito RC que fala já existe ou terei eu que calcular? Se sim, como calculo o condensador? Pelo que percebo o díodo tornar a onda assim (ver imagem com nome diodo).

E o circuito RC irei tornar a onda em uma onda quadrada, o mais perfeita possível (ver imagem RC). Certo?

 

Na verdade iremos usar um capacitor bem maior do que o necessário para se fazer a de-modulação AM. O que iremos fazer é INTEGRAR o sinal retificado, para que a cada ciclo positivo do sinal retificado pelo diodo a carga do capacitor aumente, o que faz com que a tensão sobre o mesmo suba aos poucos. Após uns 50 ciclos do sinal a tensão será alta o suficiente para ser detectada como nível alto na entrada do Arduíno.

 

O resultado final será um nível DC com um ripple bem pequeno em cima, não é nenhuma das imagens que você postou ....

 

2 horas atrás, ilovepic disse:

Relativamente ao sinal pensei que o mesmo fosse DC. Você diz que o sinal é AC pois tem uma parte negativa na onda quadrada. É por isso?

 

Repare que você configurou o coupling do osciloscópio em DC. Se o sinal fosse apenas positivo, ele não deveria ir abaixo do zero, concorda ? E se ele varia simetricamente em torno do zero, é um sinal AC. Mas terá de ser amplificado para obter uma tensão apropriada ao uso do circuito com o diodo e o RC.

 

Ah, sobre o cálculo do RC ..... envolve cálculo exponencial, e teria de saber também qual a impedância da fonte geradora do sinal.... para evitar isto é que eu uso um circuito amplificador simples e simulo no Proteus kkkkk !

 

Estou meio velho para decorar essas continhas básicas do tempo da faculdade ...

 

Use este circuito aqui :

 

 

 

Repare o capacitor de 4,7 uF no cátodo do diodo... mude para 470nF que eu acho que vai ficar bom ok ?

 

Paulo

 

  • Curtir 2
  • 3 semanas depois...
Postado
Em 12/05/2019 às 23:45, aphawk disse:

 

Hehehe dá para fazer com qualquer microcontrolador, seja Pic, AVR, etc ...

 

Um Arduino Uno tem dentro um Atmega328P, um AVR bem poderoso, basta saber usar o que tem dentro dele !

 

Antigamente não se falava em Timer ou Counter, mas sim em um módulo chamado Timer/Counter, porque ele pode ser programado para fazer as duas coisas, contar a frequência do Clock ou contar uma frequência externa ( que é o seu caso, e dessa maneira faz a função de Counter ). E no Arduino temos acesso a três Timers/Counters, mas só dois deles podem ser usados como Counter.

 

É igualzinho ao que faz um Pic .....

 

 

Na verdade iremos usar um capacitor bem maior do que o necessário para se fazer a de-modulação AM. O que iremos fazer é INTEGRAR o sinal retificado, para que a cada ciclo positivo do sinal retificado pelo diodo a carga do capacitor aumente, o que faz com que a tensão sobre o mesmo suba aos poucos. Após uns 50 ciclos do sinal a tensão será alta o suficiente para ser detectada como nível alto na entrada do Arduíno.

 

O resultado final será um nível DC com um ripple bem pequeno em cima, não é nenhuma das imagens que você postou ....

 

 

Repare que você configurou o coupling do osciloscópio em DC. Se o sinal fosse apenas positivo, ele não deveria ir abaixo do zero, concorda ? E se ele varia simetricamente em torno do zero, é um sinal AC. Mas terá de ser amplificado para obter uma tensão apropriada ao uso do circuito com o diodo e o RC.

 

Ah, sobre o cálculo do RC ..... envolve cálculo exponencial, e teria de saber também qual a impedância da fonte geradora do sinal.... para evitar isto é que eu uso um circuito amplificador simples e simulo no Proteus kkkkk !

 

Estou meio velho para decorar essas continhas básicas do tempo da faculdade ...

 

Use este circuito aqui :

 

 

 

Repare o capacitor de 4,7 uF no cátodo do diodo... mude para 470nF que eu acho que vai ficar bom ok ?

 

Paulo

 

Obrigado pela excelente ajuda Paulo

Ainda estou a estudar para conseguir entender :) Valeu

  • Haha 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!