- Components necessaris
- Programari utilitzat
- Mòdul de transmissor i receptor de RF de 433 MHz
- Esquema de connexions
- Creació del projecte per a Atmega 8 mitjançant CodeVision
- CODI i explicació
- Pengeu el codi a Atmega8
Fer que els nostres projectes siguin sense fils sempre fa que sembli genial i també amplia la gamma en què es pot controlar. Començant des d’utilitzar un LED d’IR normal per al control sense fils de curta distància fins un ESP8266 per al control HTTP mundial, hi ha moltes maneres de controlar alguna cosa sense fils. En aquest projecte aprenem a construir projectes sense fils mitjançant un mòdul RF de 433 MHz i un microcontrolador AVR.
En aquest projecte fem les següents coses: -
- Utilitzem Atmega8 per al transmissor de RF i Atmega8 per a la secció Receptor de RF.
- Interfacem un LED i un polsador amb microcontroladors Atmega8.
- Per la banda del transmissor, fem una interfície amb el botó Atmega i transmetem les dades. Al costat del receptor, rebrem les dades sense fils i mostrarem la sortida en LED.
- Utilitzem IC de codificador i descodificador per transmetre dades de 4 bits.
- La freqüència de recepció és de 433 MHz mitjançant un mòdul RF TX-RX barat disponible al mercat.
Components necessaris
- Microcontrolador AVR Atmega8 (2)
- Programador USBASP
- Cable FRC de 10 pins
- Taula de pa (2)
- LED (2)
- Polsador (1)
- Parell HT12D i HT12E
- Mòdul RF RX-TX
- Resistències (10k, 47k, 1M)
- Jumper Wires
- Alimentació de 5V
Programari utilitzat
Utilitzem el programari CodeVisionAVR per escriure el nostre codi i el programari SinaProg per carregar el nostre codi a Atmega8 mitjançant el programador USBASP.
Podeu descarregar aquests programes des dels enllaços indicats:
CodeVisionAVR :
SinaProg:
Abans d’entrar en els esquemes i codis, entenem el funcionament del mòdul RF amb els codificadors-codificadors.
Mòdul de transmissor i receptor de RF de 433 MHz

Aquests són els mòduls transmissor i receptor que estem utilitzant en el projecte. És el mòdul més barat disponible per a 433 MHz. Aquests mòduls accepten dades de sèrie en un canal.
Si veiem les especificacions dels mòduls, el transmissor té un valor nominal de 3,5-12 V com a tensió d’entrada i la distància de transmissió és de 20-200 metres. Transmet en protocol AM (Audio Modulation) a una freqüència de 433 MHz. Podem transferir dades a una velocitat de 4KB / S amb una potència de 10 mW.

A la imatge superior podem veure el pin-out del mòdul Transmissor. D'esquerra a dreta, els pins són VCC, DATA i GND. També podem afegir l’antena i soldar-la al punt indicat a la imatge anterior.
Per a l’ especificació del receptor, el receptor té una qualificació de 5 V CC i un corrent en repòs de 4MA com a entrada. La freqüència de recepció és de 433,92 MHz amb una sensibilitat de -105DB.

A la imatge anterior podem veure el pin-out del mòdul receptor. Els quatre pins són d'esquerra a dreta, VCC, DATA, DATA i GND. Aquests dos pins centrals estan connectats internament. Podem utilitzar qualsevol o tots dos. Però és una bona pràctica utilitzar-les per reduir l'acoblament del soroll.
A més, una cosa no s’esmenta al full de dades: l’ inductor variable o POT al centre del mòdul s’utilitza per al calibratge de freqüències. Si no poguem rebre les dades transmeses, hi ha possibilitats que les freqüències de transmissió i recepció no coincideixin. Es tracta d’un circuit de RF i hem de sintonitzar el transmissor en el punt de freqüència transmès perfecte. A més, igual que el transmissor, aquest mòdul també té un port d'antena; podem soldar filferro en forma enrotllada per a una recepció més llarga.
El rang de transmissió és fiable en funció del voltatge subministrat al transmissor i de la longitud de les antenes a banda i banda. Per a aquest projecte específic no hem utilitzat antena externa ni hem utilitzat 5V al costat del transmissor. Hem comprovat amb una distància de 5 metres i ha funcionat perfectament.
Obteniu més informació sobre el parell de RF al circuit de transmissors i receptors de RF. Per obtenir més informació sobre el funcionament de la RF, consulteu els següents projectes que utilitzen el parell de RF:
- Robot controlat per RF
- Circuit de convertidor d’IR a RF
- LEDs controlats a distància mitjançant RF mitjançant Raspberry Pi
- Electrodomèstics controlats per RF
Esquema de connexions
Diagrama de circuits per al costat del transmissor de RF

- Pin D7 de atmega8 -> Pin13 HT12E
- Pin D6 de atmega8 -> Pin12 HT12E
- Pin D5 de atmega8 -> Pin11 HT12E
- Pin D4 de atmega8 -> Pin10 HT12E
- Polsador al pin B0 d'Atmega.
- Resistència d'1M-ohm entre els pins 15 i 16 de HT12E.
- Pin17 de HT12E a pin de dades del mòdul transmissor de RF.
- Pin 18 de HT12E a 5V.
- Pin GND 1-9 i Pin 14 de HT12E i Pin 8 d’Atmega.
Diagrama de circuits per al costat del receptor de RF

- Pin D7 de atmega8 -> Pin13 HT12D
- Pin D6 de atmega8 -> Pin12 HT12D
- Pin D5 de atmega8 -> Pin11 HT12D
- Pin D4 de atmega8 -> Pin10 HT12d
- LED al pin B0 d'Atmega.
- Pin14 de HT12D a pin de dades del mòdul receptor RF.
- Resistència de 47 Kohm entre els pins 15 i 16 de HT12D.
- Pin GND 1-9 de HT12D i Pin 8 d'Atmega.
- LED al pin 17 de HT12D.
- 5V al pin 7 d’Atmega i pin 18 de HT12D.

Creació del projecte per a Atmega 8 mitjançant CodeVision
Després d'instal·lar aquests programes, seguiu els passos següents per crear un projecte i escriure codi:
Pas 1. Obriu CodeVision Feu clic a Fitxer -> Nou -> Projecte . Apareixerà el quadre de diàleg de confirmació. Feu clic a Sí

Pas 2. S'obrirà CodeWizard. Feu clic a la primera opció, és a dir, AT90 , i feu clic a D'acord.

Pas 3. Trieu el vostre xip de microcontrolador, aquí agafarem Atmega8 com es mostra.

Pas 4: - Feu clic a Ports. A la part del transmissor, el botó és la nostra entrada i es generen 4 línies de dades. Per tant, hem d’inicialitzar 4 pins d’Atmega com a sortida. Feu clic a Port D. Feu el bit 7, 6, 5 i 4 com a sortida fent-hi clic.

Pas 5: - Feu clic a Programa -> Generar, desar i sortir . Ara, més de la meitat del nostre treball ha finalitzat

Pas 6: - Feu una carpeta nova a l'escriptori perquè els nostres fitxers es mantinguin a la carpeta, en cas contrari, es dispersaran a tota la finestra de l'escriptori. Anomeneu la vostra carpeta com vulgueu i us suggereixo que feu servir el mateix nom per desar els fitxers del programa.
Tindrem tres quadres de diàleg un darrere l’altre per desar fitxers. Feu el mateix amb altres dos quadres de diàleg que apareixeran després de desar el primer.
Ara, el vostre espai de treball té aquest aspecte.

La major part del treball es completa amb l'ajut de l'assistent. Ara, només hem d’escriure poques línies de codi per a la part del transmissor i el receptor i ja està…
Seguiu els mateixos passos per crear fitxers per a la peça Receptor. A la part del receptor, només el LED és la nostra sortida;
CODI i explicació
Escriurem codi per canviar el LED sense fils mitjançant RF. Al final d’aquest article es dóna un codi complet per als laterals del transmissor i del receptor Atmega.
Codi Atmega8 per al transmissor de RF:
Primer incloeu el fitxer de capçalera delay.h per utilitzar delay al nostre codi.
#incloure
Ara, arribeu a les últimes línies de codi on trobareu un bucle de temps . El nostre codi principal estarà en aquest bucle.
Al bucle While , enviarem 0x10 bytes a PORTD quan es prem el botó i, enviarem 0x20 quan no es prem el botó. Podeu utilitzar qualsevol valor per enviar.
mentre que (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Codi Atmega per a receptor de RF
Primer declareu les variables superiors a la funció principal nul·la per emmagatzemar el caràcter entrant del mòdul RF.
#incloure
Ara anem a la mentre bucle. En aquest bucle, emmagatzemeu els bytes entrants a un byte de variable char i comproveu si el byte entrant és el mateix que escrivim a la nostra part del transmissor. Si els bytes són els mateixos, feu que PortB.0 sigui alt i que NO tingueu PORTB.0 per canviar el LED.
while (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Construeix el projecte
El nostre codi s'ha completat. Ara, hem de construir el nostre projecte . Feu clic a Crea la icona del projecte com es mostra.

Després de construir el projecte, es genera un fitxer HEX a la carpeta Debug-> Exe que es pot trobar a la carpeta que heu creat anteriorment per desar el projecte. Utilitzarem aquest fitxer HEX per carregar-lo a Atmega8 mitjançant el programari Sinaprog.
Pengeu el codi a Atmega8
Connecteu els vostres circuits segons el diagrama donat al programa Atmega8. Connecteu un costat del cable FRC al programador USBASP i l'altre costat es connectarà als pins SPI del microcontrolador tal com es descriu a continuació:

- Pin1 del connector femella FRC -> Pin 17, MOSI d'Atmega8
- Pin 2 connectat a Vcc de atmega8, és a dir, Pin 7
- El pin 5 està connectat al restabliment de l'atmega8, és a dir, el pin 1
- Pin 7 connectat a SCK de atmega8, és a dir, Pin 19
- Pin 9 connectat a MISO de atmega8, és a dir, Pin 18
- Pin 8 connectat a GND de atmega8, és a dir, Pin 8
Connecteu els components restants a la placa segons el diagrama del circuit i obriu el Sinaprog.
Carregarem el fitxer Hex generat anteriorment amb Sinaprog, així que obriu-lo i trieu Atmega8 al menú desplegable Dispositiu. Seleccioneu el fitxer HEX a la carpeta Depuració> Exe com es mostra.

Ara feu clic a Programa.

Ja heu acabat i el microcontrolador està programat. Seguiu els mateixos passos per programar un altre Atmega al costat del receptor.
A continuació es mostra el codi complet i el vídeo de demostració.
