- Componentes necessários
- Software Usado
- Módulo Receptor e Transmissor RF 433 MHz
- Diagrama de circuito
- Criando o projeto para Atmega 8 usando CodeVision
- CÓDIGO e Explicação
- Faça upload do código para Atmega8
Tornar nossos projetos sem fio sempre faz com que pareça legal e também estende o alcance em que pode ser controlado. Começando com o uso de um LED IR normal para controle sem fio de curta distância até um ESP8266 para controle HTTP mundial, há muitas maneiras de controlar algo sem fio. Neste projeto, aprendemos como construir projetos sem fio usando um módulo RF 433 MHz e um microcontrolador AVR.
Neste projeto, fazemos as seguintes coisas: -
- Usamos Atmega8 para o Transmissor RF e Atmega8 para a seção Receptor RF.
- Fazemos a interface de um LED e um botão de pressão com microcontroladores Atmega8.
- No lado do transmissor, conectamos o botão de pressão com o Atmega e transmitimos os dados. No lado do receptor, receberemos os dados sem fio e mostraremos a saída no LED.
- Usamos codificador e decodificador IC para transmitir dados de 4 bits.
- A frequência de recepção é de 433Mhz usando o módulo RF TX-RX barato disponível no mercado.
Componentes necessários
- Microcontrolador Atmega8 AVR (2)
- Programador USBASP
- Cabo FRC de 10 pinos
- Tábua de pão (2)
- LEDs (2)
- Botão (1)
- Par HT12D e HT12E
- Módulo RF RX-TX
- Resistores (10k, 47k, 1M)
- Jumper Wires
- Fonte de alimentação 5V
Software Usado
Usamos o software CodeVisionAVR para escrever nosso código e o software SinaProg para enviar nosso código para Atmega8 usando o programador USBASP.
Você pode baixar esses softwares nos links fornecidos:
CodeVisionAVR :
SinaProg:
Antes de entrar nos esquemas e códigos, vamos entender o funcionamento do módulo RF com CIs Codificadores-Decodificadores.
Módulo Receptor e Transmissor RF 433 MHz
Esses são os módulos transmissor e receptor que estamos usando no projeto. É o módulo mais barato disponível para 433 MHz. Esses módulos aceitam dados seriais em um canal.
Se observarmos as especificações dos módulos, o transmissor está classificado para operação de 3,5-12 V como tensão de entrada e a distância de transmissão é de 20-200 metros. Ele transmite no protocolo AM (modulação de áudio) na frequência de 433 MHz. Podemos transferir dados a uma velocidade de 4KB / S com 10mW de potência.
Na imagem superior podemos ver a pinagem do módulo Transmissor. Da esquerda para a direita, os pinos são VCC, DATA e GND. Também podemos adicionar a antena e soldá-la no ponto indicado na imagem acima.
Para a especificação do receptor, o receptor tem uma classificação de 5 V CC e corrente de repouso 4MA como entrada. A frequência de recepção é 433,92 MHz com uma sensibilidade de -105DB.
Na imagem acima podemos ver a pinagem do módulo receptor. Os quatro pinos são da esquerda para a direita, VCC, DATA, DATA e GND. Esses dois pinos do meio são conectados internamente. Podemos usar qualquer um ou ambos. Mas é uma boa prática usar ambos para diminuir o acoplamento de ruído.
Além disso, uma coisa não é mencionada na folha de dados, o indutor variável ou POT no meio do módulo é usado para calibração de frequência. Se não pudéssemos receber os dados transmitidos, há possibilidades de que as frequências de transmissão e recepção não correspondam. Este é um circuito RF e precisamos sintonizar o transmissor no ponto de frequência transmitido perfeito. Além disso, assim como o transmissor, este módulo também possui uma porta de antena; podemos soldar o fio em forma de bobina para uma recepção mais longa.
A faixa de transmissão depende da tensão fornecida ao Transmissor e do comprimento das antenas em ambos os lados. Para este projeto específico não usamos antena externa e usamos 5V no lado do transmissor. Verificamos com 5 metros de distância e funcionou perfeitamente.
Saiba mais sobre o par de RF no circuito transmissor e receptor de RF. Você pode entender mais sobre o funcionamento de RF verificando os seguintes projetos que usam o par de RF:
- Robô controlado por RF
- Circuito Conversor IR para RF
- LEDs RF com controle remoto usando Raspberry Pi
- Eletrodomésticos controlados por RF
Diagrama de circuito
Diagrama de circuito para o lado do transmissor RF
- Pino D7 de atmega8 -> Pino 13 HT12E
- Pino D6 de atmega8 -> Pin12 HT12E
- Pino D5 de atmega8 -> Pin11 HT12E
- Pino D4 de atmega8 -> Pin10 HT12E
- Botão para o Pino B0 do Atmega.
- Resistor de 1M-ohm entre os pinos 15 e 16 do HT12E.
- Pin17 do HT12E para o pino de dados do módulo transmissor de RF.
- Pino 18 do HT12E a 5V.
- GND pino 1-9 e pino 14 do HT12E e pino 8 do Atmega.
Diagrama de circuito para o lado do receptor de RF
- Pino D7 de atmega8 -> Pino 13 HT12D
- Pino D6 de atmega8 -> Pino 12 HT12D
- Pino D5 de atmega8 -> Pin11 HT12D
- Pino D4 de atmega8 -> Pin10 HT12d
- LED no pino B0 do Atmega.
- Pino 14 do HT12D ao pino de dados do módulo receptor de RF.
- Resistor de 47Kohm entre os pinos 15 e 16 do HT12D.
- GND pino 1-9 do HT12D e pino 8 do Atmega.
- LED no pino 17 do HT12D.
- 5V para pino 7 de Atmega e pino 18 de HT12D.
Criando o projeto para Atmega 8 usando CodeVision
Depois de instalar esses softwares, siga as etapas abaixo para criar o projeto e escrever o código:
Etapa 1. Abra o CodeVision Clique em Arquivo -> Novo -> Projeto . A caixa de diálogo de confirmação aparecerá. Clique em Sim
Etapa 2. CodeWizard será aberto. Clique na primeira opção, ou seja, AT90 , e clique em OK.
Etapa 3. Escolha o chip do microcontrolador, aqui vamos pegar o Atmega8 conforme mostrado.
Etapa 4: - Clique em Portas. Na parte do transmissor, o botão de pressão é a nossa entrada e 4 linhas de dados são geradas. Portanto, temos que inicializar 4 pinos do Atmega como saída. Clique na porta D. Faça os bits 7, 6, 5 e 4 clicando nela.
Etapa 5: - Clique em Programa -> Gerar, Salvar e Sair . Agora, mais da metade do nosso trabalho está concluído
Passo 6: - Crie uma nova pasta na área de trabalho para que nossos arquivos permaneçam na pasta, caso contrário, ficarão espalhados por toda a janela da área de trabalho. Nomeie sua pasta como você deseja e sugiro usar o mesmo nome para salvar arquivos de programa.
Teremos três caixas de diálogo, uma após a outra, para salvar arquivos. Faça o mesmo com outras duas caixas de diálogo que aparecerão após salvar a primeira.
Agora, seu espaço de trabalho está assim.
Nossa maior parte do trabalho é concluída com a ajuda do Wizard. Agora, temos que escrever apenas algumas linhas de código para a parte do transmissor e do receptor e é isso…
Siga os mesmos passos para criar arquivos para a peça Receiver. Na parte do receptor, apenas Led é a nossa saída, então faça a porta B0 bit para fora.
CÓDIGO e Explicação
Vamos escrever o código para alternar o LED sem fio usando RF. O código completo para o Atmega no lado do transmissor e do receptor é fornecido no final deste artigo.
Código Atmega8 para Transmissor RF:
Primeiro, inclua o arquivo de cabeçalho delay.h para usar o delay em nosso código.
#incluir
Agora, venha para as últimas linhas de código onde você vai encontrar um enquanto loop. Nosso código principal estará neste loop.
No loop While , enviaremos 0x10 byte para PORTD quando o botão for pressionado e enviaremos 0x20 quando o botão não for pressionado. Você pode usar qualquer valor para enviar.
enquanto (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Código Atmega para receptor RF
Primeiro, declare as variáveis acima da função principal nula para armazenar caracteres de entrada do módulo RF.
#incluir
Agora vamos ao loop while. Neste loop, armazene os bytes de entrada em um byte de variável char e verifique se o byte de entrada é o mesmo que escrevemos em nossa parte do transmissor. Se os bytes forem iguais, torne PortB.0 alto e NÃO tire PORTB.0 para alternar o LED.
enquanto (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Construir o Projeto
Nosso código está completo. Agora, temos que construir nosso projeto . Clique no ícone Build the project como mostrado.
Depois de construir o projeto, um arquivo HEX é gerado na pasta Debug-> Exe que pode ser encontrada na pasta que você criou anteriormente para salvar seu projeto. Usaremos esse arquivo HEX para fazer upload no Atmega8 usando o software Sinaprog.
Faça upload do código para Atmega8
Conecte seus circuitos de acordo com o diagrama fornecido para o programa Atmega8. Conecte um lado do cabo FRC ao programador USBASP e o outro lado conectará aos pinos SPI do microcontrolador, conforme descrito abaixo:
- Pino1 do conector fêmea FRC -> Pino 17, MOSI do Atmega8
- Pino 2 conectado ao Vcc de atmega8, ou seja, pino 7
- Pino 5 conectado ao reset de atmega8, ou seja, pino 1
- Pino 7 conectado a SCK de atmega8, ou seja, pino 19
- Pino 9 conectado ao MISO de atmega8, ou seja, pino 18
- Pino 8 conectado ao GND de atmega8, ou seja, Pino 8
Conecte os componentes restantes na placa de ensaio de acordo com o diagrama de circuito e abra o Sinaprog.
Faremos o upload do arquivo Hex gerado acima usando o Sinaprog, então abra-o e escolha Atmega8 no menu suspenso Dispositivo. Selecione o arquivo HEX da pasta Debug-> Exe como mostrado.
Agora, clique em Programa.
Você está pronto e seu microcontrolador está programado. Use as mesmas etapas para programar outro Atmega no lado do receptor.
O código completo e o vídeo de demonstração são fornecidos abaixo.