- Modul RF odašiljača i prijemnika od 433 MHz:
- Potreba kodera i dekodera:
- Potrebne komponente:
- Kružni dijagram:
- Objašnjenje koda:
Pozdrav svima, danas ćemo u ovom projektu povezati RF prijemnik i odašiljački modul s PIC mikrokontrolerom i bežično komunicirati između dva različita mikrokontrolera pic.
U ovom projektu radit ćemo sljedeće stvari: -
- Upotrijebit ćemo PIC16F877A za odašiljač i PIC18F4520 za odjeljak prijemnika.
- Tipkovnicu i LCD povezivat ćemo s PIC mikrokontrolerom.
- Na strani odašiljača povezat ćemo tipkovnicu s PIC-om i prenijeti podatke. Na strani prijemnika primit ćemo podatke bežično i pokazati koja je tipka pritisnuta na LCD-u.
- Za prijenos 4-bitnih podataka koristit ćemo kodere i dekoder IC.
- Učestalost prijema bit će 433 MHz koristeći jeftini RF TX-RX modul dostupan na tržištu.
Prije ulaska u sheme i kodove, hajde da shvatimo rad RF modula s enkoderima-dekoderima. Također pročitajte ispod dva članka kako biste naučili kako povezati LCD i tipkovnicu s PIC mikrokontrolerom:
- LCD sučeljavanje s PIC mikrokontrolerom pomoću MPLABX-a i XC8
- Matrica 4x4 matrične tipkovnice s PIC mikrokontrolerom
Modul RF odašiljača i prijemnika od 433 MHz:

To su odašiljački i prijamni moduli koje koristimo u projektu. To je najjeftiniji modul dostupan za 433 MHz. Ovi moduli prihvaćaju serijske podatke u jednom kanalu.
Ako vidimo specifikacije modula, odašiljač je predviđen za rad od 3,5-12 V kao ulazni napon, a udaljenost odašiljanja je 20-200 metara. Prenosi se u AM (Audio Modulation) protokolu na frekvenciji 433 MHz. Podatke možemo prenositi brzinom od 4KB / S sa snagom od 10mW.

Na gornjoj slici vidimo pin-out modula Transmiter. S lijeva na desno pribadače su VCC, DATA i GND. Također možemo dodati antenu i zalemiti je na točku označenu na gornjoj slici.
Za specifikaciju prijemnika, prijamnik ima napon od 5V jednosmjerne struje i 4MA struje mirovanja kao ulaz. Prijemna frekvencija je 433,92 MHz s osjetljivošću od -105DB.

Na gornjoj slici možemo vidjeti pin-out modula prijemnika. Četiri igle su slijeva udesno, VCC, DATA, DATA i GND. Te srednje dvije iglice međusobno su povezane. Možemo koristiti bilo koji ili oboje. Ali dobra je praksa koristiti obje za snižavanje sprege buke.
Također, jedna stvar nije navedena u tehničkom listu, varijabilna induktivnost ili POT na sredini modula koriste se za kalibraciju frekvencije. Ako nismo mogli primiti prenesene podatke, postoje mogućnosti da se frekvencije odašiljanja i prijema ne podudaraju. Ovo je RF krug i moramo podesiti odašiljač na savršenu točku odašiljane frekvencije. Također, isto kao i odašiljač, ovaj modul također ima antenski priključak; možemo lemiti žicu u namotanom obliku za dulji prijem.
Opseg prijenosa ovisi o naponu koji se isporučuje na odašiljač i duljini antena s obje strane. Za ovaj specifični projekt nismo koristili vanjsku antenu i koristili smo 5V na strani odašiljača. Provjerili smo s udaljenosti od 5 metara i to je savršeno uspjelo.
RF moduli vrlo su korisni za bežičnu komunikaciju na velike udaljenosti. Ovdje je prikazan osnovni krug RF odašiljača i prijemnika. Putem RF modula napravili smo mnogo projekata:
- RF uređaji kontrolirani kućanstvom
- Automobil s igračkama kojim upravlja Bluetooth pomoću Arduina
- RF daljinsko upravljane LED diode pomoću Raspberry Pi
Potreba kodera i dekodera:
Ovaj RF senzor ima nekoliko nedostataka: -
- Jednosmjerna komunikacija.
- Samo jedan kanal
- Vrlo smetnje buke.
Zbog ovog nedostatka koristili smo IC koder i dekoder, HT12D i HT12E. D označava dekoder koji će se koristiti na strani prijemnika, a E znači enkoder koji će se koristiti na strani odašiljača. Ovi IC pružaju 4 kanala. Također je zbog kodiranja i dekodiranja razina buke vrlo niska.

Na gornjoj je slici lijevi HT12D dekoder, a desni HT12E, onaj enkoder. Obje IC su identične. A0 do A7 koristi se za posebno kodiranje. Igle mikrokontrolera možemo koristiti za upravljanje tim pribadačama i postavljanje konfiguracija. Iste konfiguracije trebaju se podudarati s druge strane. Ako su obje konfiguracije točne i odgovaraju, možemo primiti podatke. Ovih 8 pinova mogu se spojiti na Gnd ili VCC ili ostaviti otvorenima. Bez obzira na konfiguracije koje radimo u koderu, moramo uskladiti vezu na dekoderu. U ovom ćemo projektu ostaviti otvorenih tih 8 pinova za enkoder i dekoder. 9 i 18 pinski su VSS odnosno VDD. Možemo koristiti VT pin uHT12D kao svrha obavijesti. Za ovaj projekt nismo ga koristili. TE igla za prijenos omogućiti ili onemogućiti PIN.
Važan je dio OSC pina gdje moramo povezati otpore kako bismo osigurali oscilaciju kodera i dekodera. Dekoderu su potrebne veće oscilacije od dekodera. Vrijednost otpornika kodera obično je 1Meg, a vrijednost dekodera je 33k. Te otpore koristit ćemo za naš projekt.
DOUT pin je podatkovni pin RF odašiljača na HT12E, a DIN pin u HT12D koristi se za povezivanje podatkovnog pina RF modula.
U HT12E, AD8 do AD11 je četverokanalni ulaz koji se pretvara i serijski prenosi kroz RF modul, a upravo se obrnuto događa u HT12D, serijski podaci se primaju i dekodiraju, a mi dobivamo 4-bitni paralelni izlaz kroz 4 pina D8 do D11.
Potrebne komponente:
- 2 - Daska za kruh
- 1 - LCD 16x2
- 1 - tipkovnica
- Par HT12D i HT12E
- RX-TX RF modul
- 1- 10 000 postavki
- Otpornik 2 - 4,7 k
- 1- 1M otpornik
- 1- 33k otpornik
- 2- 33pF keramički kondenzatori
- Kristal od 1 - 20 MHz
- Bergsticks
- Nekoliko jednostrukih žica.
- PIC16F877A MCU
- PIC18F4520 MCU
- Izvijač za upravljanje frekvencijskim loncem treba biti izoliran od ljudskog tijela.
Kružni dijagram:
Kružna shema na strani odašiljača (PIC16F877A):

U svrhu odašiljanja koristili smo PIC16F877A. Hex tipkovnica spojena preko PORTB i 4 kanala spojenih preko posljednje 4 bita PORTD. Ovdje saznajte više o povezivanju 4x4 Matrix tipkovnice.
Označite na sljedeći način-
1. AD11 = RD7
2. AD10 = RD6
3. AD9 = RD5
4. AD8 = RD4
Kružna shema na strani prijemnika (PIC18F4520):

Na gornjoj je slici prikazan krug prijemnika. LCD spojen preko PORTB. Koristili smo interni oscilator od PIC18F4520 za ovaj projekt. U 4 kanala povezani na isti način kao što smo učinili prije u odašiljač krug. Ovdje saznajte više o povezivanju LCD-a 16x2 s PIC mikrokontrolerom.
Ovo je strana odašiljača -

I strana prijemnika u odvojenoj ploči za ploču -

Objašnjenje koda:
Postoje dva dijela koda, jedan je za odašiljač, a drugi za prijemnik. Kompletni kod možete preuzeti ovdje.
PIC16F877A kôd za RF odašiljač:
Kao i uvijek prvo, moramo postaviti konfiguracijske bitove u mikrokontroleru pic, definirati neke makronaredbe, uključujući knjižnice i frekvenciju kristala. AD8-AD11 luka Encoder ic se definira kao RF_TX na PORTD. Možete provjeriti kôd za sve one u kompletnom kodu navedenom na kraju.
Koristili smo dvije funkcije, void system_init (void) i void encode_rf_sender (char podaci).
System_init se koristi za pin inicijalizaciju i tipkovnice inicijalizacije. Inicijalizacija tipkovnice poziva se iz knjižnice tipkovnice.
Port tipkovnice također je definiran na tipkovnici.h. Napravili smo PORTD kao izlaz koristeći TRISD = 0x00, a RF_TX port 0x00 kao zadano stanje.
praznina system_init (void) { TRISD = 0x00; RF_TX = 0x00; tipkovnica_inicijalizacija (); }
U encode_rf_sender promijenili smo 4- polno stanje ovisno o pritisnutom gumbu. Stvorili smo 16 različitih hex vrijednosti ili stanja PORTD, ovisno o ( 4x4) pritisnutim 16 različitih tipki.nevažeće encode_rf_sender (char podaci) { if (podaci == '1') RF_TX = 0x10; ako (podaci == '2') RF_TX = 0x20; ako (podaci == '3') …………... …...
U glavnoj funkciji prvo primamo podatke pritisnute tipkom tipkovnice pomoću funkcije switch_press_scan () i pohranjujemo podatke u ključnu varijablu. Nakon toga kodirali smo podatke pomoću funkcije encode_rf_sender () i mijenjajući status PORTD.
PIC18F4520 kôd za RF prijemnik:
Kao i uvijek, konfiguracijske bitove prvo smo postavili u PIC18f4520. Njegova se malo razlikuje od PIC16F877A, kôd možete provjeriti u priloženoj zip datoteci.
Uključili smo datoteku zaglavlja LCD-a. Definirana veza D8-D11 priključka IC-a dekodera preko PORTD-a pomoću #define RF_RX PORTD linije, veza je ista kao i u odjeljku Encoder. Izjava o LCD priključku također se vrši u datoteci lcd.c.
#include
Kao što je rečeno prije nego što smo koristili unutarnji oscilator za 18F4520, koristili smo funkciju system _ init gdje smo konfigurirali OSCON registar 18F4520 za postavljanje unutarnjeg oscilatora na 8 MHz. Također smo postavili TRIS bit i za LCD igle i za dekoder. Kako HT - 12D pruža izlaz na priključcima D8-D11, moramo konfigurirati PORTD kao ulaz za primanje izlaza.
praznina system_init (void) { OSCCON = 0b01111110; // 8 MHz ,, intosc // OSCTUNE = 0b01001111; // PLL omogućavanje, Max prescaler 8x4 = 32Mhz TRISB = 0x00; TRISD = 0xFF; // Posljednji 4 bita kao ulazni bit. }
Konfigurirali smo OSCON registar na 8 MHz, također napravili port B kao izlaz i port D kao ulaz.
Ispod se vrši funkcija koristeći točno obrnutu logiku korištenu u prethodnom odjeljku odašiljača. Ovdje dobivamo istu hex vrijednost iz porta D i po toj hex vrijednosti identificiramo koji je prekidač pritisnut u odjeljku odašiljača. Možemo identificirati svaki pritisak tipke i predati odgovarajući znak na LCD.
void rf_analysis (nepotpisani char primljeni_bajt) { if (recived_byte == 0x10) lcd_data ('1'); if (primljeni_bajt == 0x20) lcd_data ('2'); ako (primljeni_bajt == 0x30) ……. ….. …… ………..
Podaci lcd_data pozivaju se iz datoteke lcd.c.
U glavnoj funkciji prvo inicijaliziramo sustav i LCD. Uzeli smo varijablu bajt, i pohranjeni hex vrijednosti primljene od luke D. Tada pomoću funkcije rf_analysis možemo ispisati lik na LCD.
void main (void) { nepotpisani char byte = 0; system_init (); lcd_init (); while (1) { lcd_com (0x80); lcd_puts ("CircuitDigest"); lcd_com (0xC0); bajt = RF_RX; rf_analiza (bajt); lcd_com (0xC0); } povratak; }
Prije pokretanja, podesili smo sklop. Prvo smo pritisnuli tipku " D " na tipkovnici. Dakle, 0xF0 se neprekidno prenosi od RF odašiljača. Zatim smo podesili krug prijemnika sve dok LCD ne pokaže znak ' D '. Ponekad je modul pravilno podešen od proizvođača, ponekad nije. Ako je sve pravilno spojeno i na LCD-u ne dolazi do pritiska tipke, postoje mogućnosti da RF prijemnik nije podešen. Koristili smo izolirani odvijač za smanjenje pogrešnih mogućnosti ugađanja zbog induktivnosti našeg tijela.
Na ovaj način RF modul možete povezati s PIC mikrokontrolerom i bežično komunicirati između dva PIC mikrokontrolera pomoću RF senzora.
Kompletni kod za odašiljač i prijamnik možete preuzeti odavde, također pogledajte demonstracijski video u nastavku.
