Case Mod RJ
Olá Convidado, Seja Bem-Vindo(a) ao nosso Forum.

O Nosso Forum possui 15 Categorias.
Ela está Online há 3113 dias.
E conta com 318 Tópicos e 404 Mensagens.

Obs: Se você ainda não for cadastrado por favor, cadastre-se, é grátis assim você poderá ler todos os tópicos e ter acesso aos links.
E por favor colaborem, postem, perguntem, criem e divirtam-se.
Contribuindo vocês me ajundam a manter o forum, pois sempre estarei postando novidades e projetos sobre casemod e eletronica.




Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Parceiros
Seja Parceiro, apenas aqui e entre em contato

Seja Parceiro, apenas aqui e entre em contato

Calculadora de Led’s
Calculadora de led multo util, para você fazer seu projeto.
Calculadora LM317
Calculadora do LM 317 muito util, para você fazer seu projeto.
Calculadora Resistor
Calculadora de resistores multo util, para você fazer seu projeto.

Comunicação sem fio entre PICs

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Comunicação sem fio entre PICs

Mensagem  CaseModRJ em 09.04.11 10:23

[Você precisa estar registrado e conectado para ver esta imagem.]

Para alguns projetos, é necessário controlar a comunicação entre o microcontrolador sem fio. Esta é uma tarefa relativamente simples se for feito com as ferramentas certas, como um bom par de rádios, um bom compilador micros, e um melhor algoritmo para informações de trânsito.

Este projeto pode facilmente aprender a estabelecer uma comunicação sem fio entre dois microcontroladores , o envio de um quarteto de bits , que então pode ser visto no micro receptor. A implementação do sistema é desenvolvido com um par de microfones PIC16F628A , e dois módulos de rádio.

A chave deste projecto é o meio de transmissão utilizado. No comércio, pode obter uma ampla gama de transmissão e recepção de rádio, com características diferentes, tais como: custo, escopo, tipos de modulação, e complexidade na gestão de outros.

Para este projeto vamos trabalhar com um par de rádios muito simples de Laipac empresa canadense que produz diferentes soluções na área de comunicações sem fio.
Este é um par de rádios, qual é o transmissor eo outro é o receptor.

As referências são TLP434A e RLP434A , que são o emissor eo receptor, respectivamente. Este jogo funciona um sinal de portadora de rádio de 434 MHz e modulado em ASK, de modo que ele pode transmitir valores lógicos 1 e 0.

modulação ASK é similar à modulação de AM comercial banda de rádio AM.
ASK modulação em um 0 lógico é representado pela ausência do sinal de portadora e um 1 lógico na presença deste.

Rádio módulos utilizados neste projeto tem um alcance de 100 metros, se tiverem uma correta instalação das antenas.
Modulação ASK como a modulação AM é extremamente propenso a interferências e ruídos. Por isso, é importante para a implementação da programação do PIC uma rotina para detectar quando os dados chegaram com erros para serem descartados, porque os módulos de rádio não incluem qualquer software ou hardware método para detectar esses erros.

Módulos de rádio têm a capacidade de transmitir a 9600 bits por segundo e recebe uma taxa de 4800 bits por segundo, mas estes são casos extremos dos módulos. Para estabelecer uma comunicação mais confiável, o trabalho a uma taxa de 2400 bits por segundo.

A instalação destes módulos de rádio é muito simples, dois pinos usados ​​para alimentar o módulo, uma com e outra com GND Vcc, um pino para a antena e um para dados de entrada ou de saída série.

O módulo transmissor pode ser alimentado com uma tensão entre 3V e 12V.
A potência de transmissão é maior na alta tensão. El modulo receptor solo se puede alimentar con 5V. O módulo receptor só pode ser alimentado por 5V.

Para estabelecer a comunicação entre dois PIC módulo USART trabalhar com cada um dos ônibus.
Isto implica que um deles é o transmissor e um receptor. Estes microfones vai chamar a partir de agora, TX e RX.
No TX micro são continuamente avaliados quatro pinos, que estão localizados em dois diferentes botões são os quatro bits de informação que queremos transmitir.
Esta informação é empacotada e transmitida em série pela USART.
[Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.]

TLP434A Módulo Laipac / RLP434A módulo

Para evitar erros na entrada de dados, é necessário implementar algum método para assegurar a precisão das informações. Para isso existem formas complexas de manipulação de erro, mas para este projecto irá desenvolver um método simples, conhecido como redundância, que consiste em transmitir repetidamente os mesmos dados e ver se os dados chegam ao RX micro é o mesmo, para determinar quais dados sem erros.

No RX micro estão instalados quatro LEDs que permitem visualizar os dados que chegam sem fio.

[Você precisa estar registrado e conectado para ver esta imagem.]
Circuito do transmissor (TX).
[Você precisa estar registrado e conectado para ver esta imagem.]
Receptor de circuito (RX).

Este é o código-fonte em C do micro TX e RX.
O compilador usado é o CCS PICC Hi-Tech , mas pode ser migrado para qualquer outro compilador que funciona em C

Programa MICRO TX

Código:
# Incluir <pic.h>

void TxSerial( char d_ ) // Función para transmitir un dato de forma Não é permitido pirataria void TxSerial (d_ char) / / função para transmitir um formulário de dados de série
{ {
        TXREG = d_; TXREG = d_;     
        while( !TRMT ); (! TRMT), enquanto;
} }

void InicioSerial( void ) // Función d inicio de la USART void InicioSerial (void) / / função d início da USART
{ {
        TRISB1 = 1; TRISB1 = 1;
        TRISB2 = 0; TRISB2 = 0;
        TXSTA = 0x24; TXSTA = 0x24;
        RCSTA = 0x90; RCSTA = 0x90;
        BRGH = 1; // Configuración de la USART a 2400 bits por segundo BRGH = 1, / / ​​Definindo a USART para 2400 bits por segundo 
        SPBRG = 103; SPBRG = 103;
} }

void main( void ) // Funcion principal void main (void) / / função principal
{ {
        char DATO; DADOS char;
        INTCON = 0; // Configuración de las interrupciones INTCON = 0; / / interrompe a instalação
        TRISB = 0xFF; // Se configuran los pines de los leds como salidas TRISB = 0xFF, / / ​​Para definir os pinos LED como saídas
        RBPU = 0; // Se activan las resistencias PULL-UP RBPU = 0, / / ​​são habilitados resistor de pull-up
        InicioSerial(); // Función d inicio de la USART InicioSerial () / / função do início d USART
        while(1) while (1)
        { {
   DATO = (~PORTB>>4)&15; // Se guarda en la variable DATO el valor de los 4 pulsadores DATA = (~ PORTB>> 4) &15; / / é armazenado no valor de dados variáveis ​​dos 4 botões
   TxSerial( 170 ); // Se transmite una bandera de inicio con la secuencia de bits: 10101010 TxSerial (170), / uma bandeira é transmitido a partir da seqüência de bits: 10101010
   TxSerial( DATO ); // Se transmite el dato de manera redundante. TxSerial (DATA) / / os dados são transmitidos de forma redundante. 8 veces 8 vezes
   TxSerial( DATO ); TxSerial (FACT)
   TxSerial( DATO ); TxSerial (FACT)
   TxSerial( DATO ); TxSerial (FACT)
   TxSerial( DATO ); TxSerial (FACT)
   TxSerial( DATO ); TxSerial (FACT)
   TxSerial( DATO ); TxSerial (FACT)
   TxSerial( DATO ); TxSerial (FACT)
        } }
} }

 __CONFIG( 0x3F09 ); __CONFIG (0x3F09);


MICRO RX Programa

Código:
# Incluir <pic.h>

// Declaración de variables de trabajo / / Declare as variáveis ​​de trabalho
char n=0; char n = 0;
char Trama[4]={1,2,3,4}; Lote char [4] = {1,2,3,4};
char DATO; DADOS char;

void InicioSerial( void )// Función para la configuración de la USART. void InicioSerial (void) / / Função para definir a USART.
{ {
        TRISB1 = 1; TRISB1 = 1;
        TRISB2 = 0; TRISB2 = 0;
        TXSTA = 0x24; TXSTA = 0x24;
        RCSTA = 0x90; RCSTA = 0x90;
        BRGH = 1; BRGH = 1;
        SPBRG = 103; SPBRG = 103;
} }

void interrupt VET( void ) // Vector de interrupciones. VET (void) interromper / / Vetor de Interrupção.
{ {
    if( RCIF ) //Interrupción Não é permitido pirataria if (RCIF) / / Não é permitido pirataria Break
    { {
   DATO = RCREG; //Lectura del buffer de entrada Não é permitido pirataria DATA = RCREG / / Leia o buffer de entrada Não é permitido pirataria
   switch( DATO ) // Se evalúa el dato que llega switch (DATA) / / Ela avalia os dados que chegam
   { {
case 170: for( n=0; n<4; n++ )Trama[n]=n; n=0; break; // bandera de entrada. casado 170: para (n = 0, n <4, n + +) Padrão [n] = n, n = 0; break; sinalizador / input /.
                      // Se guardan los datos de entrada en el búfer de la trama. / / Salva a entrada de dados no buffer de frame.
         default : Trama[n++]=DATO; default: Plot [n + +] = dados;
                      // Se evalua cuanda a llega el cuarto byte de la trama. / / Para se ter avaliado, quando o quarto byte do quadro.
                             if( n==4 ) if (n == 4)
          { {
                              // Se comparan los datos 1,2,3 del bufer de la trama / / 1.2.3 são comparados os dados do buffer de quadros
               if( Trama[1]==Trama[2] ) if (padrão [1] Sinopse == [2])

                                    if( Trama[2]==Trama[3] )//y verifica que sean iguales. if (padrão [2] == Terreno [3]) / / e verifique se eles são iguais. 
                                        { {
                                        // cuando el dato es correcto se muestra por / / Quando os dados estiverem corretos é mostrado por
                                        // el puerto b en los LEDs / B Port / em LEDs
                                        PORTB = Trama[1]*16; PORTB Terreno = [1] * 16;
              for( n=0; n<8; n++ )Trama[n]=n; para (n = 0, n <8; n + +) Parcela [n] = n;
                                        } }
               n=4; n = 4;
                                } }            
        } }   
        RCIF=0; RCIF = 0;
    } }
} }

void main( void ) // Funcion principal. void main (void) / / função principal.
{ {
        INTCON = 0; // Se apagan todas las interrupciones. INTCON = 0, / / ​​todas as interrupções estão desativadas.
        PEIE=1; // Se activan las interrupciones periféricas. PEIE = 1, / / ​​interrompe periféricos estão habilitados.
        RCIE=1; RCIF=0; // Se activan las interrupciones por recepción Não é permitido pirataria. RCIE = 1; RCIF = 0, / / ​​recepção interrupções estão habilitadas série.
        GIE = 1; // Se activan las interrupciones de forma general. GIE = ​​1; / interrupções são habilitadas em geral.
        TRISB = 0x0F; // Se configuran los pines b como entrada y salida. TRISB = 0x0F, / b / pin são configurados como entrada e saída.
        PORTB = 0; // Se apagan los pines del puerto b PORTB = 0; / / Para desligar o b pinos da porta
        InicioSerial(); // Se inicializa la USART. InicioSerial () / / USART é inicializado.
        while(1); // bucle infinito para la espera de interrupciones. while (1) / / loop infinito esperando por interrupções.
} }


__CONFIG( 0x3F09 ); __CONFIG (0x3F09);
avatar
CaseModRJ
Admin

Número de Mensagens : 338
Idade : 36
Pontos : 100000520
Reputação : 61
Data de inscrição : 16/03/2009

http://casemodrj.forumeiro.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum