- Potrebne komponente
- Uporabljena programska oprema
- RF-oddajniški in sprejemniški modul 433 MHz
- Shema vezja
- Ustvarjanje projekta za Atmega 8 z uporabo CodeVision
- KODA in razlaga
- Naložite kodo na Atmega8
Izdelava naših projektov Wireless vedno poskrbi, da je videti kul in tudi razširja obseg, v katerem ga je mogoče nadzorovati. Od uporabe običajne IR LED za brezžično krmiljenje na kratke razdalje do ESP8266 za nadzor HTTP po vsem svetu obstaja veliko načinov za brezžično upravljanje. V tem projektu se naučimo graditi brezžične projekte z uporabo 433 MHz RF modula in mikrokrmilnika AVR.
V tem projektu delamo naslednje stvari: -
- Atmega8 uporabljamo za RF oddajnik in Atmega8 za RF sprejemnik.
- Z mikrokrmilniki Atmega8 povežemo LED in tipko.
- Na strani oddajnika vklopimo tipko Atmega in prenesemo podatke. Na strani sprejemnika bomo podatke prejemali brezžično in prikazovali izhod na LED.
- Za prenos 4-bitnih podatkov uporabljamo IC dajalnika in dekoderja.
- Frekvenca sprejema je 433 MHz z uporabo poceni RF TX-RX modula, ki je na voljo na trgu.
Potrebne komponente
- Mikrokrmilnik Atmega8 AVR (2)
- Programer USBASP
- 10-pinski FRC kabel
- Krušna deska (2)
- LED (2)
- Gumb (1)
- Par HT12D in HT12E
- RF modul RX-TX
- Upori (10k, 47k, 1M)
- Jumper žice
- 5V napajalnik
Uporabljena programska oprema
Za pisanje kode uporabljamo programsko opremo CodeVisionAVR, za nalaganje kode v Atmega8 pa s programsko opremo USBASP programsko opremo SinaProg.
Programsko opremo lahko prenesete s spodnjih povezav:
CodeVisionAVR :
SinaProg:
Preden se spustimo v sheme in kode, razjasnimo delovanje RF modula z enkoderji-dekoderji IC.
RF-oddajniški in sprejemniški modul 433 MHz
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.
Preberite več o RF paru v vezju RF oddajnika in sprejemnika. Več o delovanju RF lahko razumete tako, da preverite naslednje projekte, ki uporabljajo RF par:
- RF nadzorovani robot
- Vezje pretvornika IR v RF
- RF daljinsko vodene LED z Raspberry Pi
- RF nadzorovani gospodinjski aparati
Shema vezja
Shema vezja na strani RF oddajnika
- Pin D7 atmega8 -> Pin13 HT12E
- Pin D6 atmega8 -> Pin12 HT12E
- Pin D5 atmega8 -> Pin11 HT12E
- Pin D4 atmega8 -> Pin10 HT12E
- Gumb na pin B0 Atmege.
- 1M-ohmski upor med pinoma 15 in 16 HT12E.
- Pin17 HT12E na podatkovni pin modula RF oddajnika.
- Zatič 18 HT12E na 5V.
- GND pin 1-9 in Pin 14 HT12E in Pin 8 Atmega.
Shema vezja na strani RF sprejemnika
- Pin D7 atmega8 -> Pin13 HT12D
- Pin D6 atmega8 -> Pin12 HT12D
- Pin D5 atmega8 -> Pin11 HT12D
- Pin D4 atmega8 -> Pin10 HT12d
- LED na pin B0 Atmege.
- Pin14 HT12D na podatkovni pin RF sprejemnega modula.
- 47Kohm upor med pin15 in 16 HT12D.
- GND pin 1-9 HT12D in Pin 8 Atmega.
- LED na pin 17 HT12D.
- 5V na pin 7 Atmege in pin 18 HT12D.
Ustvarjanje projekta za Atmega 8 z uporabo CodeVision
Po namestitvi teh programov sledite spodnjim korakom za ustvarjanje projekta in pisanje kode:
1. korak. Odprite CodeVision Kliknite Datoteka -> Novo -> Projekt . Pojavilo se bo pogovorno okno za potrditev. Kliknite Da
Korak 2. Odprl se bo čarovnik CodeWizard. Kliknite prvo možnost, tj. AT90 , in kliknite V redu.
Korak 3. Izberite svoj mikrokrmilniški čip, tukaj bomo vzeli Atmega8, kot je prikazano.
4. korak: - Kliknite Ports. V delu oddajnika je tipkalo naš vhod in izhodne so 4 podatkovne vrstice. Torej moramo kot izhod inicializirati 4 nožice Atmege. Kliknite Port D. Naredite bit 7, 6, 5 in 4 kot ven, tako da ga kliknete.
5. korak: - Kliknite Program -> Ustvari, shrani in zapri . Zdaj je več kot polovica našega dela končana
6. korak: - Na namizju ustvarite novo mapo, tako da bodo naše datoteke ostale v mapi, sicer bodo razpršene po celotnem oknu namizja. Poimenujte svojo mapo, kot želite, in predlagam, da uporabite isto ime za shranjevanje programskih datotek.
Za shranjevanje datotek bomo imeli eno za drugim tri pogovorna okna. Naredite enako z drugimi dvema pogovornima oknoma, ki se bosta pojavili, ko boste shranili prvo.
Zdaj je vaš delovni prostor videti tako.
Največ dela opravimo s pomočjo čarovnika. Zdaj moramo napisati le nekaj vrstic kode za del oddajnika in sprejemnika in to je to…
Sledite istim korakom za ustvarjanje datotek za del sprejemnika. V delu sprejemnika je le Led naš izhod, zato naredite vrata B0 bit ven.
KODA in razlaga
Napisali bomo kodo za brezžično preklapljanje LED z uporabo RF. Popolna koda tako za Atmego na oddajni kot sprejemni strani je podana na koncu tega članka.
Koda Atmega8 za RF oddajnik:
Najprej vključite datoteko glave delay.h, če želite uporabiti zamudo v naši kodi.
#include
Zdaj pridite do zadnjih vrstic kode, kjer boste našli zanko while . V tej zanki bo naša glavna koda.
V zanki While bomo poslali 0x10 bajtov v PORTD, ko pritisnemo gumb, in bomo poslali 0x20, ko gumba ne pritisnemo. Za pošiljanje lahko uporabite katero koli vrednost.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } če (PINB.0 == 0) { PORTD = 0x20; } } }
Koda Atmega za RF sprejemnik
Najprej spremenljivke deklarirajte nad void main function za shranjevanje dohodnih znakov iz RF modula.
#include
Zdaj pa pojdite na zanko while . V tej zanki shranite dohodne bajte v spremenljivi bajt char in preverite, ali je dohodni bajt enak kot smo zapisali v naš del oddajnika. Če so bajti enaki, povečajte PortB.0 in za preklop LED ne upoštevajte NOT of PORTB.0.
while (1) { byte = PIND; če (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; zamuda_ms (1000); }}}
Zgradite projekt
Naša koda je izpolnjena. Zdaj moramo zgraditi svoj projekt . Kliknite ikono Build the project, kot je prikazano.
Po izdelavi projekta se v mapi Debug-> Exe ustvari datoteka HEX, ki jo najdete v mapi, ki ste jo že ustvarili, da shranite svoj projekt. To datoteko HEX bomo uporabili za nalaganje v Atmega8 s programsko opremo Sinaprog.
Naložite kodo na Atmega8
Priključite svoja vezja v skladu z danim diagramom na program Atmega8. Priključite eno stran kabla FRC na programer USBASP, druga stran pa bo priključena na zatiče SPI mikrokrmilnika, kot je opisano spodaj:
- Pin1 ženskega konektorja FRC -> Pin 17, MOSI Atmega8
- Pin 2, povezan z Vcc atmega8, tj. Pin 7
- Pin 5, povezan s ponastavitvijo atmega8, tj. Pin 1
- Pin 7, povezan s SCK atmega8, tj. Pin 19
- Pin 9, povezan z MISO atmega8, tj. Pin 18
- Zatič 8, povezan z GND atmega8, tj. Zatič 8
Preostale komponente na plošči povežite po shemi vezja in odprite Sinaprog.
Zgoraj ustvarjeno Hex datoteko bomo naložili s pomočjo Sinaprog, zato jo odprite in v spustnem meniju Device izberite Atmega8. Izberite datoteko HEX v mapi Debug-> Exe, kot je prikazano.
Zdaj kliknite Program.
Končali ste in vaš mikrokrmilnik je programiran. Z enakimi koraki programirajte drugo Atmego na strani sprejemnika.
Celotna koda in predstavitveni video je podan spodaj.