Radio Controle - Esquema - KITO

9
08/12/13 Radio Controle - esquema - KITO https://sites.google.com/site/kitoeag/radio-controle 1/9 KITO Navegação Início Downloads Eletronica Física Informatica Projetos Biologia Sitemap Área restrita Radio Controle - esquema Barão de Melgaço - MT - Brasil - 07/08/2009 Neste artigo iremos montar um Rádio Controle que acione alguns LEDs. Após algumas pesquisa na internet, decidimos usar o Transmissor TXC1 ou TX - C1 tanto faz (Figura 1) e o Receptor RXD1 (Figura 1b). Encontramos no Mercado Livre estes componentes para venda.O ID do vendedor é WORLDPIC e nos enviou via Correios no mesmo dia da compra. Figura1a: Receptor RXD1 Figura1b: Transmissor TXC1 Encontramos o projeto Radio Remote Control of Appliances (Ver anexo), onde mostra como fazer um rádio controle. Então, iremos basear neste projeto para fazermos nosso radio controle. No projeto, é mostrado o C.I. HT12E e o HT12D que são respectivamente um codigicador e um decodificador (Figura 2a e Figura 2b), onde conseguimos comprar também no Mercado Livre com o mesmo vendedor citado anteriormente. Figura 2a: C.I. Codificador HT 12E Figura 2b: C.I. Decodificador HT 12D Abaixo segue um exemplo de como os C.I.'s são utilizados (Figura 3). Eles servem para evitar que um rádio controle interfira com o outro. Para isso, basta fazer as mesmas configurações das chaves do C.I. HT12E e do C.I. HT12D. Por exemplo, se no primeiro C.I. configurarmos a chave A0 como fechada e o restante (A1 até A7) deixarmos abertas, teremos então que fazer esta mesma configuração no outro C.I. para que haja uma comunicação entre eles. Figura 3: Exemplo de um circuito usando os C.I.'s HT12E e HT12D. Pesquisar o site

Transcript of Radio Controle - Esquema - KITO

Page 1: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 1/9

KITO

Navegação

Início

Downloads

Eletronica

Física

Informatica

Projetos

Biologia

Sitemap

Área restrita

Radio Controle - esquema

Barão de Melgaço - MT - Brasil - 07/08/2009

Neste artigo iremos montar um Rádio Controle que acione alguns LEDs. Após algumas pesquisa na internet,decidimos usar o Transmissor TXC1 ou TX - C1 tanto faz (Figura 1) e o Receptor RXD1 (Figura 1b). Encontramosno Mercado Livre estes componentes para venda.O ID do vendedor é WORLDPIC e nos enviou via Correios nomesmo dia da compra.

Figura1a: Receptor RXD1

Figura1b: Transmissor TXC1

Encontramos o projeto Radio Remote Control of Appliances (Ver anexo), onde mostra como fazer um rádiocontrole. Então, iremos basear neste projeto para fazermos nosso radio controle.

No projeto, é mostrado o C.I. HT12E e o HT12D que são respectivamente um codigicador e um decodificador (Figura 2a e Figura 2b), onde conseguimos comprar também no Mercado Livre com o mesmo vendedor citadoanteriormente.

Figura 2a: C.I. CodificadorHT12E

Figura 2b: C.I. DecodificadorHT12D

Abaixo segue um exemplo de como os C.I.'s são utilizados (Figura 3). Eles servem para evitar que um rádiocontrole interfira com o outro. Para isso, basta fazer as mesmas configurações das chaves do C.I. HT12E e doC.I. HT12D. Por exemplo, se no primeiro C.I. configurarmos a chave A0 como fechada e o restante (A1 até A7)deixarmos abertas, teremos então que fazer esta mesma configuração no outro C.I. para que haja umacomunicação entre eles.

Figura 3: Exemplo de um circuito usando os C.I.'s HT12E e HT12D.

Pesquisar o site

Page 2: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 2/9

A antena

Consultado o datasheet dos módulos de do Transmissor TXC1 e do Receptor RXD1, obtivemos os seguintestamanhos para a antena:

Transmissor TXC1: Comprimento = 22.6cm para 315MHz ; Comprimento = 17.2 cm para 434MHz.Receptor RXD1: Comprimento = 22.6cm para 315MHz ; Comprimento = 17.2 cm para 434MHz.

Como iremos trabalhar com a frequência de 433.92MHz, o tamanha da nossa antena será:

Transmissor TXC1: Comprimento = 17.2cmReceptor RXD1: Comprimento = 17.2cm

A antena pode ser feita de fio rígido de cobre 26AWG [1] ou fio encontrado em cabo de rede.

O circuito

No esquema elétrico do Rádio Controle (Figura 4), configuramos o C.I. codificador HT12E com a chave A0 fechada.Sendo assim, obrigatoriamente, temos que manter a chave A0 do C.I. decodificador HT12D (Figura 5) tambémfechada.

Figura 4: Esquema elétrico do Rádio Controle.

Figura 5: Esquema elétrico do circuito receptor.

Este circuito foi montado em protoboard e funcionou muito bem. Testamos também sem antena e a transmissãoocorreu normalmente.

Rádio Controle com PIC

Para quem precisa de um controle remoto com mais botões, podemos adicionar ao circuito um microcontrolador.Fizemos isso utilizando um microcontrolador PIC 16F628A da Microchip. Com isso, podemos obter até 8 chaves.Lembrando que poderíamos usar um outro microcontrolador com mais portas para expandir ainda mais o número dechaves.

Os pinos RA1, RA2, RA3 e RA4, foram ligados em chaves para serem utilizados como configuração de endereço.Sendo assim, se no circuito transmissor (Figura 7) todas as chaves estiverem abertas, então todas as chaves docircuito receptor (Figura 8) também devem estar abertas para que o circuito receba os dados. Obser que temosapenas 4 chaves para configuração de endereço. Isso possibilita fazer até 16 endereçamento diferente. Para quemprecisa de mais endereçamentos, pode utilizar um PIC com mais portas ou entao escrever esse endereçamento nopróprio software. Para isso, basta inserir um número de 0 a 255 nas variáveis Codigo e CodigoLocal que

Page 3: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 3/9

encontram-se respectivamente no código fonte do transmissor e do receptor. Veja um exemplo abaixo de comodeve ficar o código.

Trecho do código Transmissor - Demonstração de como deve ficar o código caso haja a necessidadede expandir o número de endereçamento.

.

.

.Do Codigo = 130

Dado = PORTB 'Copia o valor do PORTB para a variável Dado

Transmita 'Chama a sub-rotina para transmitir o dado

Loop...

Trecho do código Receptor - Demonstração de como deve ficar o código caso haja a necessidade deexpandir o número de endereçamento.

.

.

.'Lendo o código local CodigoLocal = 130

'Verifica se é o código corretoIf CodigoLocal = CodigoRecebido ThenPORTB = DadoRecebido 'Se o código é correto, então PORTB recebe ovalor do dado recebido.end if

Loop...

Figura 7: Circuito transmissor do rádio controle com PIC 16F628A.

Page 4: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 4/9

Figura 8: Circuito receptor do rádio controle com PIC 16F628A.

O código fonte foi escrito para o compilador GCBASIC (http://gcbasic.sourceforge.net/). A vantagem de se usar oGCBASIC está na sua facilidade e também por ele ser Open Source. Para facilitar a compilação do GCBASIC,usamos o programa Prithvi Portable que é um portatil do programa Prithvi Development Studio(http://sourceforge.net/projects/prithvi/). Pra quem nunca utilizou o programa Prithvi, assista este vídeo quedemonstra como compilar um código fonte: http://youtu.be/NFfLw_ibIcY

O compilador GCBASIC vem com uma função para transmissão serial. Porém, para melhor entender a transmissão,

resolvi criar um pacote de transmissão usando a codificação Manchester [2]. Para sincronizar os dados, foi criadoum pulso alto de 2000 microssegundos seguido de um nível baixo de 100 microssegundos (Figura 10). Em seguida,é transmitido um byte com o endereço (ou código) e outro byte contendo o dado. A codificaçao Manchesterusada foi a IEEE 802.3 (Figura 11).

Figura 9 - Sinal do pacote transmitido.

Figura 10 - Analise dos pulsos de cada pacote transmitido.

Page 5: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 5/9

Figura 11 - Codificação Manchester. Disponível em http://en.wikipedia.org/wiki/Manchester_code

Os arquivos transmissor.hex e receptor.hex podem ser baixados no final desta página. Logo abaixo existe um vídeomostrando o funcionamento do circuito através de simulação.

Código fonte - Transmissor

#chip 16F628A, 4

#define TX PORTA.0 'Define o pino RA0 como TXDir TX Out 'Define TX como saída

Dir PORTA.1 In 'Define PORTA.1 como entrada

Dir PORTA.2 In 'Define PORTA.2 como entrada Dir PORTA.3 In 'Define PORTA.3 como entrada

Dir PORTA.4 In 'Define PORTA.4 como entrada

Dir PORTB in 'Define todo o PORTB como entrada

Do Codigo.1 = PORTA.1 'Copia o valor do pino RA1 para o bit 1 da variável Código

Codigo.2 = PORTA.2 'Copia o valor do pino RA2 para o bit 2 da variável Código

Codigo.3 = PORTA.3 'Copia o valor do pino RA3 para o bit 3 da variável CódigoCodigo.4 = PORTA.4 'Copia o valor do pino RA4 para o bit 4 da variável Código

Dado = PORTB 'Copia o valor do PORTB para a variável Dado

Transmita 'Chama a sub-rotina para transmitir o dado

Loop

Sub Transmita' 01 é igual a 1

' 10 é igual a 0

'Inicio da transmissao

'Rotina para transmitir pulso longo

TX = 1 Wait 2000 us

TX = 0 Wait 100 us

If Codigo.0 = 1 Then

Transmita1

ElseTransmita0

end if

If Codigo.1 = 1 Then

Transmita1

ElseTransmita0

end if

If Codigo.2 = 1 Then

Transmita1

ElseTransmita0

end if

If Codigo.3 = 1 Then

Transmita1Else

Transmita0

end if

If Codigo.4 = 1 Then

Transmita1Else

Page 6: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 6/9

Transmita0

end if

If Codigo.5 = 1 Then

Transmita1

Else

Transmita0

end if

If Codigo.6 = 1 Then

Transmita1

Else

Transmita0

end if

If Codigo.7 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.0 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.1 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.2 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.3 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.4 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.5 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.6 = 1 Then

Transmita1

Else

Transmita0

end if

If Dado.7 = 1 Then

Transmita1

Else

Transmita0

end if

end sub

Sub Transmita1

TX = 0

Wait 100 us

TX = 1

Wait 100 us

end sub

Sub Transmita0

TX = 1

Wait 100 us

TX = 0

Wait 100 us

end sub

Código fonte - Receptor

#chip 16F628A, 4

#define RX PORTA.0 'Define o pino RA0 como RX para receber a transmisão

Dir RX In 'Define a RX como entrada

Dir PORTA.1 In 'Define o pino RA1 como entrada

Dir PORTA.2 In 'Define o pino RA2 como entrada

Dir PORTA.3 In 'Define o pino RA3 como entrada

Dir PORTA.4 In 'Define o pino RA4 como entrada

Dir PORTB Out 'Define todo PORTB como saida

Page 7: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 7/9

Wait 10 ms

'Zera variáveis

CodigoLocal = 0

Do

'=============================================================================

'Identifica Pulso de 2000 ms para iniciar a leitura do dado

'=============================================================================

Inicio:

Contador = 0 'Zera contador

Volta:

If RX = 1 Then 'Testa se o sinal está em nível alto

Contador = Contador + 1 'Incrementa contador

wait 15 us 'Aguarda 15 microsegundos

Goto Volta 'Volta para testar o pulso novamente

End if 'Fim da rotina If

If Contador < 95 Then 'Se contador menor que 95, cancela e volta p/ Inicio

Goto Inicio

end if

'Se contador maior que 95, receba o dado

'=============================================================================

Receba 'Chama sub-rotina para receber o dado

DecodificaManchester 'Chama sub-rotina para decodificar o dado recebido

DadoRecebido = dado 'Salva valor do dado recebido

'Verificar codificação

dadoA = codigoA 'Copia o codigoA na variável dadoA para decodifica-lo usando a sub-rotina

DecodificaManchester

dadoB = codigoB 'Copia o codigoA na variável dadoA para decodifica-lo usando a sub-rotina

DecodificaManchester

DecodificaManchester 'Chama sub-rotina para decodificar o Código recebido

CodigoRecebido = dado 'Salva valor do codigo recebido

'Lendo o código local

CodigoLocal.1 = PORTA.1 'Copia o estado do pino RA1 no bit 1 da variável CodigoLocal

CodigoLocal.2 = PORTA.2 'Copia o estado do pino RA2 no bit 2 da variável CodigoLocal

CodigoLocal.3 = PORTA.3 'Copia o estado do pino RA3 no bit 3 da variável CodigoLocal

CodigoLocal.4 = PORTA.4 'Copia o estado do pino RA4 no bit 4 da variável CodigoLocal

'Verifica se é o código correto

If CodigoLocal = CodigoRecebido Then

PORTB = DadoRecebido 'Se o código é correto, então PORTB recebe o valor do dado recebido.

end if

Loop

Sub Receba

Wait 145 us 'Aguarda 145 microsegundo para sincronizar os pulsos

codigoA.0 = RX

Wait 100 us

codigoA.1 = RX

Wait 100 us

codigoA.2 = RX

Wait 100 us

codigoA.3 = RX

Wait 100 us

codigoA.4 = RX

Wait 100 us

codigoA.5 = RX

Wait 100 us

codigoA.6 = RX

Wait 100 us

codigoA.7 = RX

Wait 100 us

codigoB.0 = RX

Wait 100 us

codigoB.1 = RX

Wait 100 us

codigoB.2 = RX

Wait 100 us

codigoB.3 = RX

Wait 100 us

codigoB.4 = RX

Wait 100 us

codigoB.5 = RX

Wait 100 us

codigoB.6 = RX

Wait 100 us

codigoB.7 = RX

Wait 100 us

dadoA.0 = RX

Wait 100 us

dadoA.1 = RX

Wait 100 us

dadoA.2 = RX

Wait 100 us

dadoA.3 = RX

Wait 100 us

dadoA.4 = RX

Wait 100 us

dadoA.5 = RX

Page 8: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 8/9

Wait 100 us

dadoA.6 = RX

Wait 100 us

dadoA.7 = RX

Wait 100 us

dadoB.0 = RX

Wait 100 us

dadoB.1 = RX

Wait 100 us

dadoB.2 = RX

Wait 100 us

dadoB.3 = RX

Wait 100 us

dadoB.4 = RX

Wait 100 us

dadoB.5 = RX

Wait 100 us

dadoB.6 = RX

Wait 100 us

dadoB.7 = RX

End sub

Sub DecodificaManchester

If dadoA.0=1 Then

If dadoA.1=1 Then GOTO erro

MyData_recebendo.0 = 0

else

If dadoA.1=0 Then GOTO erro

MyData_recebendo.0 = 1

end if

If dadoA.2=1 Then

If dadoA.3=1 Then GOTO erro

MyData_recebendo.1 = 0

else

If dadoA.3=0 Then GOTO erro

MyData_recebendo.1 = 1

end if

If dadoA.4=1 Then

If dadoA.5=1 Then GOTO erro

MyData_recebendo.2 = 0

else

If dadoA.5=0 Then GOTO erro

MyData_recebendo.2 = 1

end if

If dadoA.6=1 Then

If dadoA.7=1 Then GOTO erro

MyData_recebendo.3 = 0

else

If dadoA.7=0 Then GOTO erro

MyData_recebendo.3 = 1

end if

If dadoB.0=1 Then

If dadoB.1=1 Then GOTO erro

MyData_recebendo.4 = 0

else

If dadoB.1=0 Then GOTO erro

MyData_recebendo.4 = 1

end if

If dadoB.2=1 Then

If dadoB.3=1 Then GOTO erro

MyData_recebendo.5 = 0

else

If dadoB.3=0 Then GOTO erro

MyData_recebendo.5 = 1

end if

If dadoB.4=1 Then

If dadoB.5=1 Then GOTO erro

MyData_recebendo.6 = 0

else

If dadoB.5=0 Then GOTO erro

MyData_recebendo.6 = 1

end if

If dadoB.6=1 Then

If dadoB.7=1 Then GOTO erro

MyData_recebendo.7 = 0

else

If dadoB.7=0 Then GOTO erro

MyData_recebendo.7 = 1

end if

dado = MyData_recebendo

end sub

erro:

Goto Inicio

end

Page 9: Radio Controle - Esquema - KITO

08/12/13 Radio Controle - esquema - KITO

https://sites.google.com/site/kitoeag/radio-controle 9/9

Referências:

[1] Rogercom, Disponível em <http://www.rogercom.com/pparalela/LptWireless.htm>; acessado em 10 de Agostode 2009.

[2] Wikipédia, Manchester code. Disponível em <http://en.wikipedia.org/wiki/Manchester_code>; acessado em 09de Abril de 2013.

[3] GCBASIC, Great Cow BASIC. Disponível em <http://gcbasic.sourceforge.net/>; acessado em 09 de Abril de2013.

[4] Prithvi Development Studio. Disponível em <http://sourceforge.net/projects/prithvi>; acessado em 09 de Abrilde 2013.

Fórum, http://74.125.47.132/search?q=cache:-bfz2kd6VzkJ:forum.clubedohardware.com.br/archive/controle-remoto-rf/487527+Ht12d+esquema&cd=4&hl=pt-BR&ct=clnk&gl=br

Fazer login | Atividade recente no site | Denunciar abuso | Imprimir página | Remover acesso | Tecnologia Google Sites

Č

HT12d-datasheet.pdf Edivaldo Amaral Gonçalves, ċ ďv.1(176k) 12/08/2009 05:53

HT12e-datasheet.pdf Edivaldo Amaral Gonçalves, ċ ďv.1(166k) 12/08/2009 05:53

RXD1-datasheet.pdf Edivaldo Amaral Gonçalves, Ċ ďv.1(22k) 07/08/2009 08:43

RadioRemoteControlofAppliances.pdf Edivaldo Amaral Gonçalves, Ċ ďv.1(392k) 07/08/2009 09:03

TX-C1-datasheet.pdf Edivaldo Amaral Gonçalves, Ċ ďv.1(91k) 07/08/2009 08:46

receptor.hex Edivaldo Amaral Gonçalves, ċ ďv.1(2k) 09/04/2013 11:35

transmissor.hex Edivaldo Amaral Gonçalves, ċ ďv.1(1k) 09/04/2013 11:35

Comentários

Você não tem permissão para adicionar comentários.