- 433MHz RF-oddajniški modul:
- Potreba po kodirniku in dekoderju:
- Potrebne komponente:
- Shema vezja:
- Razlaga kode:
Pozdravljeni, danes bomo v tem projektu povezali RF-sprejemniški in oddajniški modul z mikrokrmilnikom PIC in brezžično komunicirali med dvema različnima mikrokrmilnikoma pic.
V tem projektu bomo naredili naslednje stvari: -
- Za oddajnik bomo uporabili PIC16F877A, za odsek sprejemnika pa PIC18F4520.
- Tipkovnico in LCD bomo povezali z mikrokrmilnikom PIC.
- Na strani oddajnika bomo povezali tipkovnico s PIC in poslali podatke. Na strani sprejemnika bomo podatke prejemali brezžično in prikazovali, katero tipko pritisnemo na LCD-prikazovalniku.
- Za prenos 4-bitnih podatkov bomo uporabili IC dajalnika in dekoderja.
- Pogostost sprejema bo 433 MHz z uporabo poceni RF TX-RX modula, ki je na voljo na trgu.
Preden se spustimo v sheme in kode, naj razumemo delovanje RF modula z IC-kodirniki-dekoderji. Prav tako si oglejte spodnja dva članka, če želite izvedeti, kako povezati LCD in tipkovnico z mikrokrmilnikom PIC:
- Povezava LCD z mikrokrmilnikom PIC z uporabo MPLABX in XC8
- Vmesnik matrične tipkovnice 4x4 z mikrokrmilnikom PIC
433MHz RF-oddajniški modul:
To so oddajniški in sprejemni moduli, ki jih uporabljamo v projektu. Je najcenejši modul, ki je na voljo za 433 MHz. Ti moduli sprejemajo serijske podatke v enem kanalu.
Če vidimo specifikacije modulov, je oddajnik ocenjeno za 3.5-12V delovanja kot vhodne napetosti in oddaja razdalja 20-200 metrov. To ne prenašajo v AM (Audio Modulation) protokola na MHz 433 frekvenco. Podatke lahko prenesemo s hitrostjo 4KB / S z močjo 10mW.
Na zgornji sliki vidimo pin-out modula oddajnika. Od leve proti desni so nožice VCC, DATA in GND. Lahko tudi dodamo anteno in jo spajkamo na točko, ki je označena na zgornji sliki.
Za specifikacijo sprejemnika ima sprejemnik oceno 5V enosmernega toka in 4MA mirujočega toka kot vhod. Sprejemna frekvenca je 433,92 MHz z občutljivostjo -105DB.
Na zgornji sliki lahko vidimo pin-out sprejemnega modula. Štirje zatiči so od leve proti desni, VCC, DATA, DATA in GND. Ta srednja dva zatiča sta notranje povezana. Uporabimo lahko katerega koli ali oboje. Vendar je dobro uporabiti oboje za znižanje hrupa.
Ena stvar v obrazcu ni omenjena, spremenljivi induktor ali POT na sredini modula se uporablja za kalibracijo frekvence. Če poslanih podatkov nismo mogli sprejeti, obstaja možnost, da se oddajna in sprejemna frekvenca ne ujemata. To je RF vezje in oddajnik moramo nastaviti na popolno oddano frekvenčno točko. Tako kot oddajnik ima ta modul tudi vrata za anteno; za daljši sprejem lahko žico spajkamo v zviti obliki.
Območje prenosa je odvisno od napetosti, ki jo oddaja oddajnik, in dolžine anten na obeh straneh. Za ta poseben projekt nismo uporabili zunanje antene in uporabili 5V na strani oddajnika. Preverili smo s 5 metri razdalje in je delovalo odlično.
RF moduli so zelo uporabni za brezžično komunikacijo na velike razdalje. Osnovno vezje RF oddajnika in sprejemnika je prikazano tukaj. Z RF modulom smo naredili veliko projektov:
- RF nadzorovani gospodinjski aparati
- Toy Car z nadzorom Bluetooth z uporabo Arduina
- RF daljinsko vodene LED z Raspberry Pi
Potreba po kodirniku in dekoderju:
Ta RF senzor ima nekaj pomanjkljivosti: -
- Enosmerna komunikacija.
- Samo en kanal
- Motenj zelo hrup.
Zaradi te pomanjkljivosti smo uporabili IC- kodirnike in dekoderje, HT12D in HT12E. R stoji za dekoder, ki se bo uporabljal v sprejemnik strani in E stoji za dajalnika, ki se bo uporabljal v oddajnika strani. Ti IC-ji zagotavljajo 4 kanale. Tudi zaradi kodiranja in dekodiranja je raven hrupa zelo nizka.
Na zgornji sliki je levi HT12D dekodirnik, desni pa HT12E, enkodirnik. Obe IC sta enaki. A0 do A7 se uporablja za posebno kodiranje. Za nadzor teh zatičev in nastavitev konfiguracij lahko uporabimo nožice mikrokrmilnika. Enake konfiguracije je treba uskladiti na drugi strani. Če sta obe konfiguraciji natančni in se ujemata, lahko prejmemo podatke. Teh 8 nožic lahko povežete z Gnd ali VCC ali pustite odprte. Ne glede na konfiguracije, ki jih naredimo v kodirniku, se moramo ujemati s povezavo na dekoderju. V tem projektu bomo pustili odprtih tistih 8 nožic za dajalnik in dekoder. 9 in 18 pin je VSS oziroma VDD. Vtič VT lahko uporabimo vHT12D kot namen obveščanja. Za ta projekt ga nismo uporabili. TE pin za prenos omogoči ali onemogoči zatič.
Pomemben del je OSC pin, kjer moramo povezati upore, da zagotovimo nihanje dajalnika in dekoderja. Dekoder potrebuje večje nihanje kot dekoder. Običajno je vrednost upora upora enkoderja 1Meg, vrednost decoderja pa 33k. Te upore bomo uporabili za naš projekt.
DOUT pin so podatki pin RF oddajnik na HT12E in DIN pin v HT12D se uporablja za priključitev podatkovni pin RF modul.
V HT12E so AD8 do AD11 štirikanalni vhodi, ki se pretvorijo in serijsko prenašajo prek RF modula, natančno obratno pa se zgodi v HT12D, prejetih in dekodiranih serijskih podatkih in dobimo 4-bitni vzporedni izhod prek 4 zatičev D8 do D11.
Potrebne komponente:
- 2 - deska za kruh
- 1 - LCD 16x2
- 1 - Tipkovnica
- Par HT12D in HT12E
- RF modul RX-TX
- 1- 10K prednastavitev
- 2 - 4.7k upor
- 1- 1M upor
- 1- 33k upor
- 2- 33pF keramični kondenzatorji
- 1 - 20 MHz kristal
- Bergsticks
- Nekaj enožičnih žic.
- PIC16F877A MCU
- PIC18F4520 MCU
- Izvijač za nadzor frekvenčnega lonca mora biti izoliran od človeškega telesa.
Shema vezja:
Shema vezja na strani oddajnika (PIC16F877A):
Za oddajanje smo uporabili PIC16F877A. Hex Tipkovnica povezan preko PORTB in 4 kanali so povezani preko zadnjih 4 bitov PORTD. Več o priključitvi 4x4 matrične tipkovnice preberite tukaj.
Odkrijte, kot sledi -
1. AD11 = RD7
2. AD10 = RD6
3. AD9 = RD5
4. AD8 = RD4
Shema vezja na strani sprejemnika (PIC18F4520):
Na zgornji sliki je prikazano vezje sprejemnika. LCD je priključen preko PORTB. Uporabili smo notranji oscilator za PIC18F4520 za ta projekt. Za 4 kanali so povezani na enak način, kot smo ga prej v oddajnik vezje. Več o povezovanju 16x2 LCD z mikrokrmilnikom PIC najdete tukaj.
To je oddajna stran -
In stran sprejemnika v ločeni plošči -
Razlaga kode:
Obstajata dva dela kode, eden je za oddajnik in drugi za sprejemnik. Celotno kodo lahko prenesete od tukaj.
Koda PIC16F877A za RF oddajnik:
Kot vedno najprej moramo v mikrokrmilniku pic nastaviti konfiguracijske bite, določiti nekaj makrov, vključno s knjižnicami in kristalno frekvenco. Vrata AD8-AD11 dajalnika kod so definirana kot RF_TX pri PORTD. Kodo lahko preverite za vse, ki so v celotni kodi, navedeni na koncu.
Uporabili smo dve funkciji, void system_init (void) in void encode_rf_sender (char podatki).
System_init se uporablja za pin inicializacijo in tipkovnice initializations. Inicializacija tipkovnice se pokliče iz knjižnice tipkovnice.
Vrata tipkovnice so določena tudi v tipkovnici.h. PORTD smo naredili kot izhod z uporabo TRISD = 0x00, vrata RF_TX pa kot 0x00 kot privzeto stanje.
void system_init (void) { TRISD = 0x00; RF_TX = 0x00; tipkovnica_inicializacija (); }
V encode_rf_sender smo spremenili 4-polno stanje, odvisno od pritisnjenega gumba. Ustvarili smo 16 različnih šestnajstiških vrednosti ali stanj PORTD, odvisno od ( 4x4) 16 različnih pritisnjenih gumbov.void encode_rf_sender (char char) { if (data == '1') RF_TX = 0x10; če (podatki == '2') RF_TX = 0x20; če (podatki == '3') …………... …….
V glavni funkciji najprej s funkcijo switch_press_scan () prejmemo pritisnjene podatke na tipkovnici in podatke shranimo v ključno spremenljivko. Po tem smo podatke kodirali s funkcijo encode_rf_sender () in spremenili status PORTD.
Koda PIC18F4520 za RF-sprejemnik:
Kot vedno smo konfiguracijske bite najprej nastavili v PIC18f4520. Njegova malce drugačna od PIC16F877A, kodo lahko preverite v priloženi zip datoteki.
Vključili smo datoteko z glavo LCD. Določena je bila povezava vrat D8-D11 Decoder IC prek PORTD s pomočjo linije #define RF_RX PORTD, povezava je enaka kot v razdelku Encoder. Izjava o vratih LCD se izvede tudi v datoteki lcd.c.
#include
Kot že omenjeno, ki jih uporabljamo interni oscilator za 18F4520, ki smo jih uporabljali sistem _ init funkcijo, kjer smo nastavili OSCON register za 18F4520 nastavite notranji oscilator za 8 MHz. Nastavili smo tudi TRIS bit tako za zatiče LCD kot za zatiče Decoder. Ker HT - 12D zagotavlja izhod na vratih D8-D11, moramo PORTD konfigurirati kot vhod za sprejem izhoda.
void system_init (void) { OSCCON = 0b01111110; // 8 MHz,, intosc // OSCTUNE = 0b01001111; // PLL omogoči, Max prescaler 8x4 = 32Mhz TRISB = 0x00; TRISD = 0xFF; // Zadnji 4 bit kot vhodni bit. }
Konfigurirali smo register OSCON na 8 MHz, vrata B smo izdelali kot izhod in vrata D kot vhod.
Spodnja funkcija je narejena z natančno vzvratno logiko, uporabljeno v prejšnjem odseku oddajnika. Tu dobimo enako šestnajstiško vrednost iz vrat D in po tej šestnajstiški vrednosti določimo, katero stikalo je bilo pritisnjeno v odseku oddajnika. Vsak pritisk na tipko lahko prepoznamo in na LCD prikažemo ustrezni znak.
void rf_analysis (unsigned char recived_byte) { if (recived_byte == 0x10) lcd_data ('1'); if (recived_byte == 0x20) lcd_data ('2'); če (prejeti_bajt == 0x30) ……. ….. …… ………..
Lcd_data se imenuje iz lcd.c datoteke.
V glavni funkciji najprej inicializiramo sistem in LCD. Vzeli smo spremenljivo bajt, in shranjena vrednost hex, prejete od pristanišča D. Nato s funkcijo rf_analysis lahko znak natisnemo na LCD.
void main (void) { unsigned char byte = 0; sistem_init (); lcd_init (); medtem ko (1) { lcd_com (0x80); lcd_puts ("CircuitDigest"); lcd_com (0xC0); bajt = RF_RX; rf_analiza (bajt); lcd_com (0xC0); } vrnitev; }
Pred zagonom smo prilagodili vezje. Najprej smo na tipkovnici pritisnili gumb ' D '. Torej, RF oddajnik neprekinjeno oddaja 0xF0. Nato smo uglaševali sprejemniško vezje, dokler se na LCD-ju ne prikaže znak " D ". Včasih je modul pravilno nastavljen s strani proizvajalca, včasih ni. Če je vse pravilno priključeno in na LCD-prikazovalniku ni prikazana vrednost pritiska gumba, obstaja možnost, da RF sprejemnik ni nastavljen. Z izoliranim izvijačem smo zmanjšali napačne možnosti uglaševanja zaradi induktivnosti telesa.
Tako lahko RF modul povežete z mikrokrmilnikom PIC in brezžično komunicirate med dvema mikrokrmilnikoma PIC z RF senzorjem.
Celotno kodo za oddajnik in sprejemnik lahko prenesete od tu, preverite tudi spodnji predstavitveni video.