Controle Remoto via Manchester no MikroC

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Controle Remoto via Manchester no MikroC

Mensagempor lpagano » 08 Fev 2009 16:32

Pessoal,

Estou fazendo um simples controle remoto com aqueles famosos módulos 433MHz que a gente compra por aí. Por enquanto estou mandando somente um byte, só para testar o controle.

Para o transmissor estou usando um PIC 12F683, o qual está transmitindo os dados. Liguei um receptor comercial de RF na frequência de 433.92MHz para ver se estava transmitindo e vi que está recebendo as transmissões do módulo transmissor normalmente.

Para o receptor estou usando um 12F629 mas não consegue decodificar os dados recebidos. Liguei um led na saída do módulo receptor e esse led acende quando faço uma transmissão pelo módulo TX, indicando que o módulo RX está recebendo a transmissão.

Vejam abaixo os códigos do TX e RX.


TX

Código: Selecionar todos
void main( )
{
     char x = 9;
         
     CMCON0  = 7;                            // comparadores desligados
     ANSEL = 0;
     TRISIO = 0b000010;                   // seta os trisio
     
     GPIO = 0;

     Man_Send_Init(&GPIO);             

     while (1)                               
     {

                if (button(&GPIO,1,40,1))         
                {

                      Man_Send(x);               // envia o caracter
                      delay_ms(400);            // aguarda 400ms
                                                         // entre transmissões
                }
      }

}






RX
Código: Selecionar todos
void main ( )
{
     char a, error;
     
     CMCON = 7;
     TRISIO = 0b000001;

     GPIO = 0;

     Man_Receive_Init(&GPIO);           // recepção do código no GPIO 0


     while (1)
     {

          a = Man_Receive(error);              // testa a mensagem recebida

          if (a == 9)                                 // se receber "9" (codigo correto)
          {

               GPIO.F2 = 1;
               delay_ms(500);
               GPIO.F2 = 0;

          }

          else                          // senão
          {

               GPIO.F4 = 1;
               delay_ms(500);
               GPIO.F4 = 0;

          }


     }

}




Vejam que, se o PIC no receptor receber "9' (dado correto) deve ativar por 0,5 segundos a saída GPIO.F2 e qualquer outro sinal recebido ativa a saída GPIO.F4. Nem uma nem outra está funcionando, mas o PIC está funcionando ok.

A distancia entre os módulos TX e RX é de uns 15 cm e tudo está alimentado com 5VCC.

Alguém poderia ajudar a resolver isso?

Valeu!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor Maia » 08 Fev 2009 16:39

Não conheço o MikroC mas geralmente as rotinas de delay só aceitam valores até 255 (unsigned char). Tenta dois delays de 250 ms pra ver se funfa.
Abraços,
Maia
Avatar do usuário
Maia
Byte
 
Mensagens: 348
Registrado em: 15 Out 2006 16:25
Localização: Rio de Janeiro

Mensagempor lpagano » 08 Fev 2009 21:20

Maia,

Essa rotina de delay com mais de 255 funciona pois já fiz vários programas com rotinas de até 3000ms e deu certo.

O problema mesmo parece ser as funções do Manchester.
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor ffcprog » 09 Fev 2009 09:04

well boi..
look this..

Man_Receive_Config:; <<<<<<<<<<<<<<<
The function prepares PIC for receiving signal. You need to specify the port and rxpin (0–7) of input signal. In case of multiple errors on reception, you should call Man_Receive_Init once again to enable synchronization.

Man_Receive_Init:; <<<<<<<<< you using this...
The function prepares PIC for receiving signal. You need to specify the port; rxpin is pin 6 by default. In case of multiple errors on reception, you should call Man_Receive_Init once again to enable synchronization.

tendeu seu erro ? o 12fXXX, vai de GP0 a GP5... e nao GP6...

Preciso falar mais alguma coisa ?

ffcprog
ffcprog
Byte
 
Mensagens: 145
Registrado em: 14 Fev 2007 23:16

Mensagempor lpagano » 09 Fev 2009 09:41

"fêfêcêprog",

Tks, eu nem tinha percebido isso. :oops:

Ah, só respondendo sua pergunta, não precisa falar mais nada não, obrigado! :lol:
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23


Voltar para PIC

Quem está online

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

cron

x