Flaa garagistas tudo na paz?
Seguinte comprei um daqueles modulos rf (modelo Fs1000A), entretanto não consigo faze-lo funcionar...
Estou executando os exemplos que vem na biblioteca VirtualWire, mas não está dando certo...
Já soldei as antenas nos modulos, mas não ajudou...
O que eu poderia fazer para descobrir o que está dando de errado??
Obrigado a todos
Tags:
Niguem??
Envie links sobre esse modulo.
Sua rotina e sua ligação.
Colega ja tive esse mesmo problema Nao é problema fisico nao é na programaçao
tente este codigo aqu
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int x,startbit,ctr,dataok,t1,larpulso,larpulso1,larpulso2,larpulso3,larpulso4,bt1,bt2,antcode=0;
unsigned long _data=0;
unsigned long _dur,_dur1;
byte _pin; // PINO receber o sinal RF digital.2
//para Cada controle Sao uzados 2 variaveis < conter > uma para cana
/// canal do controle
// Cada botao é um canal diferente ou seja quase
// inpossivel burlar este sistema
int counter = 1;////////////////////CANAL 1/////controle 1/////////"variavel Counter"
int countero = 1;////////////////////CANAL 2/////controle 1/////////"variavel Countero"
int counter1 = 1;////////////////////CANAL 1/////controle 2/////////"variavel Counter"
int counter2 = 1;////////////////////CANAL 2/////controle 2/////////"variavel Countero"
int counter3 = 1;////////////////////CANAL 1//////controle 3////////"variavel Counter"
int counter4 = 1;////////////////////CANAL 2//////controle 3////////"variavel Countero"
////////PODE ADICIONAR VARIOS CANAIS...
////////CADA CANAL DEVE TER DUAS VARIAVEIS
void setup()
{
_pin=2;
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(13,OUTPUT);
pinMode(9, OUTPUT);
pinMode(3, OUTPUT);
}
void loop()
{
digitalWrite(3, digitalRead(2)); //Pisca o LED conforme o valor da entrada digital, testar interferencias.
if (startbit==0)
{// Testa o tempo piloto até o Bit de inicio;
_dur = pulseIn(_pin, LOW);
if(_dur > 8000 && _dur < 12000 && startbit==0)
{
larpulso=_dur/23;
larpulso1=larpulso-50;
larpulso2=larpulso+50;
larpulso3=larpulso+larpulso-50;
larpulso4=larpulso+larpulso+50;
startbit=1;
_dur=0;
_data=0;
dataok=0;
ctr=0;
}
}
// Se o Bit de inicio OK ENTÃO Inicia a medição do tempo em Nivel ALTO dos sinais, e testa se o tempo está na faixa.
if (startbit==1 && dataok==0 && ctr < 28)
{
++ctr;
_dur1 = pulseIn(_pin, HIGH);
if(_dur1 > larpulso1 && _dur1 < larpulso2) // Se a largura de pulso é entre 1/4000 e 1/3000 segundos
{
_data = (_data 1) + 1; // anexar um * 1 * para a extremidade mais à direita do buffer
}
else if(_dur1 > larpulso3 && _dur1 < larpulso4) // Se a largura de pulso é entre 2/4000 e 2/3000 segundos
{
_data = (_data 1); // anexar um * 0 * para a extremidade mais à direita do buffer
}
else
{
/* força finalização do laço */
startbit=0;
}
}
if (ctr==28)
{ if (bitRead(_data,0)==1)
{
if (bitRead(_data,1)==0)
{
if (bitRead(_data,2)==1)
{
if (bitRead(_data,3)==0)
{
antcode=1;
}
}
}
}
if (antcode==1)
{// Se foram recebidos todos os 28 Bits, o valor vai para a variavel _data e pode ser usada como exemplo abaixo.
dataok=1;
Serial.println(_data,DEC);
Serial.println(counter,DEC);
ctr=0;
startbit=0;
antcode=0;
delay(100);
////////////////////CANAL 1//////////////"variavel Counter"
/////Colocar codigo botao liga
if (_data==145199317)//////dentro do parentes vai o codigo do botao
{ if(counter==1)
digitalWrite(13, HIGH);
counter++;
if(counter==3)
digitalWrite(13, HIGH);
if(counter==3)
counter=(1);
}else{
////////////////////CANAL 2//////////////"variavel Countero"
/////Colocar Codigo botao Desliga
if(_data==145199333)
{
if(countero==1)
digitalWrite(13, LOW);
countero++;
if(countero==3)
digitalWrite(13, LOW);
if(countero==3)
countero=(1);
}
}
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Olá utilizei o seguinte o tutorial como base: http://www.instructables.com/id/RF-315433-MHz-Transmitter-receiver-...
Edson este código é para o receptor? Qual código eu uso no transmissor?
na realidade o trasmissorque utilizo é um controle
Como assim um controle?
Aqueles de portão?
Usei o código, que você passou mas não funcionou... Usei uma chave de carro para testar porque não tenho nenhum controle de portão.
Também testei usando o próprio transmissor (usando o código de exemplo da VirtualWire) mas não obtive sucesso
Olá José, tudo certo?
Já tinha dado uma olhada neste tutorial, mas acredito que ele não sirva porque usa um outro módulo rf..
O meu modelo é o Fs1000A
Abraços
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por