- Súčasti sú povinné
- Použitý softvér
- 433MHz RF vysielač a prijímač
- Schéma zapojenia
- Vytváranie projektu pre Atmega 8 pomocou CodeVision
- KÓD a vysvetlenie
- Vložte kód do Atmega8
Vďaka tomu, že robíme naše projekty, bezdrôtové pripojenie vždy vyzerá, že vyzerá dobre, a tiež rozširuje rozsah, v ktorom je možné ho ovládať. Počnúc používaním normálnej IR LED pre bezdrôtové ovládanie na krátku vzdialenosť až po ESP8266 pre celosvetové ovládanie HTTP, existuje veľa spôsobov, ako niečo ovládať bezdrôtovo. V tomto projekte sa učíme, ako budovať bezdrôtové projekty pomocou 433 MHz RF modulu a mikrokontroléra AVR.
V tomto projekte robíme nasledujúce veci: -
- Používame Atmega8 pre RF vysielač a Atmega8 pre časť RF prijímač.
- Prepojujeme LED a tlačidlo s mikrokontrolérmi Atmega8.
- Na strane vysielača prepájame rozhranie s Atmegou a prenášame údaje. Na strane prijímača prijmeme údaje bezdrôtovo a výstup zobrazíme na LED.
- Na prenos 4-bitových dát používame kodér a dekodér IC.
- Frekvencia príjmu je 433 MHz pomocou lacného modulu RF TX-RX dostupného na trhu.
Súčasti sú povinné
- Mikrokontrolér Atmega8 AVR (2)
- USBASP programátor
- 10-pinový kábel FRC
- Chlebová doska (2)
- LED diódy (2)
- Tlačidlo (1)
- Pár HT12D a HT12E
- RF modul RX-TX
- Rezistory (10k, 47k, 1M)
- Prepojovacie drôty
- Napájanie 5V
Použitý softvér
Používame CodeVisionAVR softvér pre písanie náš kód a SinaProg softvér pre nahrávanie náš kód do atmega8 pomocou USBASP programátor.
Tento softvér si môžete stiahnuť z uvedených odkazov:
CodeVisionAVR :
SinaProg:
Predtým, ako sa pustíme do schém a kódov, pochopíme fungovanie RF modulu s integrovanými obvodmi Encoder-Decoder.
433MHz RF vysielač a prijímač
Jedná sa o vysielacie a prijímacie moduly, ktoré používame v projekte. Je to najlacnejší dostupný modul pre frekvenciu 433 MHz. Tieto moduly prijímajú sériové dáta v jednom kanáli.
Ak vidíme špecifikácie modulov, vysielač je dimenzovaný na prevádzku 3,5-12V ako vstupné napätie a vysielacia vzdialenosť je 20-200 metrov. Vysiela sa v protokole AM (Audio Modulation) na frekvencii 433 MHz. Dáta môžeme prenášať rýchlosťou 4KB / S s výkonom 10mW.
Na hornom obrázku vidíme vývod modulu vysielača. Zľava doprava sú kolíky VCC, DATA a GND. Môžeme tiež pridať anténu a spájkovať ju v bode označenom na obrázku vyššie.
Pre špecifikáciu prijímača má prijímač ako vstup vstupné napätie 5V ss a 4MA kľudový prúd. Prijímacia frekvencia je 433,92 MHz s citlivosťou -105 dB.
Na obrázku vyššie vidíme výbežok prijímacieho modulu. Štyri kolíky sú zľava doprava, VCC, DATA, DATA a GND. Tieto prostredné dva piny sú vnútorne spojené. Môžeme použiť jeden alebo obidva. Osvedčeným postupom je použitie oboch na zníženie hlukovej spojky.
V údajovom liste tiež nie je uvedená jedna vec, na kalibráciu frekvencie sa používa variabilný induktor alebo POT v strede modulu. Ak by sme nedokázali prijímať vysielané údaje, existujú možnosti, že vysielacie a prijímacie frekvencie sa nezhodujú. Toto je RF obvod a musíme vyladiť vysielač na perfektne vysielaný frekvenčný bod. Rovnako ako vysielač, aj tento modul má anténny port; môžeme spájkovať drôt v stočenej forme pre dlhší príjem.
Rozsah prenosu závisí od napätia dodávaného do vysielača a dĺžky antén na oboch stranách. Pre tento konkrétny projekt sme nepoužili externú anténu a použili sme 5V na strane vysielača. Skontrolovali sme s 5 metrovou vzdialenosťou a fungovalo to perfektne.
Získajte viac informácií o dvojici RF v obvode vysielača a prijímača RF. Viac informácií o fungovaní RF môžete pochopiť kontrolou nasledujúcich projektov, ktoré používajú RF pár:
- RF riadený robot
- Obvod prevádzača IR na RF
- RF diaľkovo ovládané LED diódy pomocou Raspberry Pi
- RF riadené domáce spotrebiče
Schéma zapojenia
Schéma zapojenia pre stranu RF vysielača
- Pin D7 z atmega8 -> Pin13 HT12E
- Pin D6 atmega8 -> Pin12 HT12E
- Pin D5 atmega8 -> Pin11 HT12E
- Pin D4 atmega8 -> Pin10 HT12E
- Tlačidlo na pin B0 spoločnosti Atmega.
- Rezistor 1 M-ohm medzi pinmi 15 a 16 obvodu HT12E.
- Pin17 HT12E na dátový pin modulu RF vysielača.
- Pin 18 z HT12E na 5V.
- GND vývod 1-9 a vývod 14 HT12E a vývod 8 Atmega.
Schéma zapojenia na strane RF prijímača
- Pin D7 z atmega8 -> Pin13 HT12D
- Pin D6 z atmega8 -> Pin12 HT12D
- Pin D5 atmega8 -> Pin11 HT12D
- Pin D4 atmega8 -> Pin10 HT12d
- LED na pin B0 spoločnosti Atmega.
- Pin14 HT12D na dátový pin modulu RF prijímača.
- Rezistor 47Kohm medzi pinmi 15 a 16 obvodu HT12D.
- GND pin 1-9 HT12D a pin 8 Atmega.
- LED na pin 17 HT12D.
- 5 V na pin 7 Atmega a pin 18 na HT12D.
Vytváranie projektu pre Atmega 8 pomocou CodeVision
Po nainštalovaní týchto softvérov postupujte podľa nasledujúcich krokov a vytvorte projekt a kód na napísanie:
Krok 1. Otvorte CodeVision Kliknite na Súbor -> Nový -> Projekt . Zobrazí sa dialógové okno s potvrdením. Kliknite na Áno
Krok 2. Otvorí sa program CodeWizard. Kliknite na prvú možnosť, tj. Na AT90 , a potom na OK.
Krok 3. Vyberte si čip mikrokontroléra, tu vezmeme Atmega8, ako je znázornené.
Krok 4: - Kliknite na Porty. V časti vysielača je náš vstup tlačidlom a na výstupe sú 4 dátové linky. Takže musíme inicializovať 4 piny Atmega ako výstup. Kliknite na port D. Kliknutím na neho urobte bit 7, 6, 5 a 4 ako von.
Krok 5: - Kliknite na Program -> Generovať, uložiť a ukončiť . Teraz je viac ako polovica našej práce dokončená
Krok 6: - Vytvorte nový priečinok na pracovnej ploche tak, aby naše súbory zostali v priečinku, inak sa rozptýli po celom okne pracovnej plochy. Pomenujte priečinok, ako chcete, a navrhujem, aby ste na ukladanie programových súborov používali rovnaký názov.
Budeme mať po sebe tri dialógové okná na ukladanie súborov. To isté urobte s ďalšími dvoma dialógovými oknami, ktoré sa zobrazia po uložení prvého.
Váš pracovný priestor teraz vyzerá takto.
Naša väčšina práce je dokončená pomocou Sprievodcu. Teraz musíme napísať iba pár riadkov kódu pre časť vysielača a prijímača a je to…
Rovnakým spôsobom vytvorte súbory pre časť Prijímač. V časti prijímača je náš výstup iba LED, takže port B0 urobte výstupom.
KÓD a vysvetlenie
Napíšeme kód na bezdrôtové prepínanie LED pomocou RF. Kompletný kód pre Atmega na strane vysielača aj prijímača je uvedený na konci tohto článku.
Atmega8 kód pre RF vysielač:
Najprv zahrňte hlavičkový súbor delay.h, aby ste v našom kóde použili oneskorenie.
#include
Teraz príďte k posledným riadkom kódu, kde nájdete chvíľu smyčku. Náš hlavný kód bude v tejto slučke.
V cykle While pošleme 0x10 bajtov na PORTD, keď je stlačené tlačidlo, a pošleme 0x20, keď nie je stlačené tlačidlo. Na odoslanie môžete použiť ľubovoľnú hodnotu.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } ak (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega kód pre RF prijímač
Najskôr deklarujte premenné nad neplatnou hlavnou funkciou na ukladanie prichádzajúcich znakov z RF modulu.
#include
Teraz príde na while slučky. V tejto slučke ukladajte prichádzajúce bajty do bajtu premennej char a skontrolujte, či je prichádzajúci bajt rovnaký, ako píšeme v našej vysielacej časti. Ak bajty sú rovnaké, aby PortB.0 vysoké a brať NOT o PORTB.0 pre prepínanie LED.
while (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1 000); }}}
Zostavte projekt
Náš kód je dokončený. Teraz musíme postaviť náš projekt . Kliknite na ikonu Zostaviť projekt, ako je to znázornené.
Po zostavení projektu sa v priečinku Debug-> Exe vygeneruje súbor HEX, ktorý sa nachádza v priečinku, ktorý ste si predtým vytvorili na uloženie projektu. Tento HEX súbor použijeme na nahranie do Atmega8 pomocou softvéru Sinaprog.
Vložte kód do Atmega8
Pripojte svoje obvody podľa schémy k programu Atmega8. Pripojte jednu stranu FRC kábla k USBASP programátoru a druhú stranu pripojte k SPI pinom mikrokontroléra, ako je popísané nižšie:
- Pin1 FRC female konektoru -> Pin 17, MOSI of Atmega8
- Pin 2 pripojený k Vcc atmega8, tj pin 7
- Pin 5 pripojený k Reset atmega8, tj Pin 1
- Pin 7 pripojený k SCK atmega8, tj pin 19
- Pin 9 pripojený k MISO atmega8, tj pin 18
- Pin 8 pripojený k GND atmega8, tj pin 8
Pripojte zvyšné komponenty na nepájivej doske podľa schémy zapojenia a otvorte Sinaprog.
Nahráme vyššie vygenerovaný hexadecimálny súbor pomocou nástroja Sinaprog, takže ho otvorte a v rozbaľovacej ponuke Zariadenie vyberte Atmega8. Vyberte HEX súbor z priečinka Debug-> Exe, ako je to znázornené.
Teraz kliknite na Program.
Hotovo a váš mikrokontrolér je naprogramovaný. Rovnakými krokmi naprogramujte ďalší Atmega na strane prijímača.
Kompletný kód a ukážkové video sú uvedené nižšie.