Olá pessoal, estou com um problema com o código pulsein. Eu montei um emissor infravermelho utilizando um circuito com o CI 555 no modo astável, desse jeito eu consigo trocar as frequências facilmente de alguns Hz ate os kHz e no receptor estou usando o arduino uno com um sensor TSOP para identificar esses sinais de frequência por infravermelho. O problema é que o arduino sempre lê o mesmo valor quando olho no serial monitor, sempre 4095, independente da frequência que o CI 555 esteja mandando através do infravermelho. O que pode ser? falha na programação do pulsein? ou será que tenho que decodificar a frequência mandando uma informação dentro dela?

código utilizado no Pulsein:

void setup() {
// put your setup code here, to run once:
pinMode (2,INPUT);

Serial.begin(9600);

}

void loop() {
// put your main code here, to run repeatedly:
int remote_val=remote();
if (remote_val>0){
Serial.println(remote_val);
delay(300);
}}
int remote()
{
int value=0;
int time=pulseIn(2,HIGH);
if (time>2000){
for (int counter1=0;counter1<12;counter1++){
if (pulseIn(2,HIGH)>1000){
value=value+(1counter1);
}
}
}
return value;
}

circuito emissor: (basta mudar R1 e R2 para trocar a frequência)

Circuito receptor: é o arduino uno que recebe o sinal de um sensor TSOP (comuns de aparelhos de TV) lendo o sinal direto no pino digital 2.

Problema: independente da frequência emitida pelo circuito infravermelho do CI555, o arduino sempre lê o mesmo valor, no caso 4095, e o código pulseIn deveria distinguir as frequências atraves da medição do tempo alto no pino 2, cada frequência tem um tempo, mas isso não ocorre...

Alguma sugestão?

Muito obrigado pela atenção de todos!!!

E hoje vamos ver o Brasil golear a Espanha!!!!! 

Exibições: 2036

Responder esta

Respostas a este tópico

Você não está modificando apenas o resistor que controla o tempo em LOW, pois se está lendo sempre 4095, significa que o tempo em HIGH está ficando sempre igual.

Muda seu programa para usar uma interrupção e conta quantos ciclos ocorreu em um segundo e você saberá que a frequência mudou.

Desculpe se falei besteira, é apenas para confirmar...

você conseguiria me indicar um site ou me explicar como eu conseguiria fazer essa contagem na programação do arduino. Obrigado

Isso nunca vai funcionar, vc precisa de 2 CI555, um para gerar a portadora em 38kHz e outro para modular.. Precisa de mais uma etapa nesse seu circuito..

desculpa a burrice, mas quando você fala em modular, o que seria isso? Obrigado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço