- Szükséges alkatrészek
- Használt szoftver
- 433MHz RF adó és vevő modul
- Kördiagramm
- Projekt létrehozása az Atmega 8 számára a CodeVision használatával
- KÓD és magyarázat
- Töltse fel a kódot az Atmega8-ra
Projektjeink vezeték nélküli megvalósítása mindig jó megjelenést kölcsönöz, és kiterjeszti az irányíthatóság tartományát is. A rövid távú vezeték nélküli vezérléshez használt normál IR LED-től kezdve az ESP8266-ig a világméretű HTTP-vezérléshez sokféle módon lehet valamit vezeték nélkül vezérelni. Ebben a projektben megtanuljuk, hogyan lehet vezeték nélküli projekteket építeni egy 433 MHz-es RF modul és AVR mikrokontroller segítségével.
Ebben a projektben a következő dolgokat tesszük: -
- Az Atmega8-at használjuk az RF-adóhoz és az Atmega8-at az RF-vevő szakaszhoz.
- Egy LED-et és egy nyomógombot kapcsolunk össze az Atmega8 mikrovezérlőkkel.
- Az adó oldalon a nyomógombot összekapcsoljuk az Atmegával, és továbbítjuk az adatokat. A vevő oldalon vezeték nélkül fogjuk az adatokat, és a kimenetet LED-en mutatjuk be.
- Kódolót és dekóder IC-t használunk 4 bites adatok továbbításához.
- A vételi frekvencia 433 MHz, a piacon elérhető olcsó RF TX-RX modul használatával.
Szükséges alkatrészek
- Atmega8 AVR mikrovezérlő (2)
- USBASP programozó
- 10 tűs FRC kábel
- Kenyérlemez (2)
- LED-ek (2)
- Nyomógomb (1)
- HT12D és HT12E pár
- RX-TX RF modul
- Ellenállások (10k, 47k, 1M)
- Jumper huzalok
- 5V tápegység
Használt szoftver
A CodeVisionAVR szoftvert használjuk a kódunk megírásához, a SinaProg szoftvert pedig a kódunk feltöltéséhez az Atmega8-ba USBASP programozó segítségével.
Ezeket a szoftvereket a megadott linkekről töltheti le:
CodeVisionAVR :
SinaProg:
Mielőtt belekezdenénk a sematikába és a kódokba, ismerjük meg az RF modul működését az Encoder-Decoder IC-kkel.
433MHz RF adó és vevő modul
Ezeket az adó és vevő modulokat használjuk a projektben. Ez a 433 MHz-en elérhető legolcsóbb modul. Ezek a modulok egyetlen csatornán fogadják el a soros adatokat.
Ha látjuk a modulok specifikációit, az adó 3,5-12 V- os működésre van bemeneti feszültségként értékelve, és az adási távolság 20-200 méter. AM (Audio Modulation) protokollban továbbít 433 MHz frekvencián. Adatokat 4KB / S sebességgel , 10mW teljesítmény mellett továbbíthatunk.
A felső képen láthatjuk az adó modul kitűzését. Balról jobbra a csapok a VCC, a DATA és a GND. Hozzáadhatjuk az antennát és ráforraszthatjuk a fenti képen jelölt pontra is.
A vevő specifikációja szerint a vevő bemenete 5V DC és 4MA nyugalmi áram. A vételi frekvencia 433,92 MHz, -105DB érzékenységgel.
A fenti képen láthatjuk a vevő modul kitűzését. A négy csap balról jobbra, VCC, DATA, DATA és GND. Ez a középső két csap belső kapcsolatban van. Használhatunk egyet vagy mindkettőt. De jó gyakorlat mindkettőt használni a zajkapcsoló csökkentésére.
Ezenkívül egy dolog nem szerepel az adatlapon, a modul közepén található változó induktivitást vagy POT- ot használják a frekvencia kalibrálásához. Ha nem tudtuk megkapni a továbbított adatokat, akkor vannak lehetőségek arra, hogy az adó és a vétel frekvenciája nincs összhangban. Ez egy RF áramkör, és az adót a tökéletes átvitt frekvencia pontra kell hangolnunk. Továbbá, ugyanúgy, mint az adó, ez a modul rendelkezik Antenna porttal is; a huzalt tekercselt formában forraszthatjuk a hosszabb vétel érdekében.
Az átviteli tartomány függ az adó tápfeszültségétől és az antennák hosszától mindkét oldalon. Ehhez a konkrét projekthez nem használtunk külső antennát, és 5 V-ot használtunk az adó oldalán. 5 méteres távolsággal ellenőriztük, és tökéletesen működött.
Tudjon meg többet az RF párról az RF adó és vevő áramkörben. Az RF működéséről többet megtudhat, ha ellenőrzi a következő RF-párokat használó projekteket:
- RF vezérelt robot
- IR-RF átalakító áramkör
- RF távirányítós LED-ek a Raspberry Pi használatával
- RF vezérlésű háztartási gépek
Kördiagramm
Áramköri ábra az RF adó oldalán
- Az atmega8 D7 tűje -> Pin13 HT12E
- Az atmega8 D6 tűje -> Pin12 HT12E
- Az atmega8 D5 érintkezője -> Pin11 HT12E
- Az atmega8 D4 tűje -> Pin10 HT12E
- Nyomógomb az Atmega B0 tűjéhez.
- 1M ohmos ellenállás a HT12E 15. és 16. tűje között.
- A HT12E 17. tűje az RF adó modul adatcsapjához.
- A HT12E 18. tűje 5 V-ra.
- GND 1–9., HT12E 14. és Atmega 8. tű.
Áramköri ábra az RF vevő oldalán
- Az atmega8 D7 tűje -> Pin13 HT12D
- Az atmega8 D6 érintkezője -> Pin12 HT12D
- Az atmega8 D5 érintkezője -> Pin11 HT12D
- Az atmega8 D4 tűje -> Pin10 HT12d
- LED az Atmega B0 tűjéhez.
- A HT12D 14. tűje az RF vevő modul adatcsapjához.
- 47Kohm ellenállás a HT12D 15. és 16. tűje között.
- GND HT12D 1–9 tű és Atmega 8. tű.
- LED a HT12D 17. tűjéhez.
- 5 V az Atmega 7. és a HT12D 18. tűjéhez.
Projekt létrehozása az Atmega 8 számára a CodeVision használatával
Ezen szoftverek telepítése után kövesse az alábbi lépéseket a projekt és a kód írásához:
1. lépés. A CodeVision megnyitása Kattintson a Fájl -> Új -> Projekt elemre. Megjelenik a Megerősítés párbeszédpanel. Kattintson az Igen gombra
2. lépés. Megnyílik a CodeWizard. Kattintson az első opcióra, azaz az AT90-re , majd kattintson az OK gombra.
3. lépés. Válassza ki a mikrovezérlő chipjét, itt az Atmega8-at vesszük, az ábra szerint.
4. lépés: - Kattintson a Portok elemre. Az adóegységben a nyomógomb a bemenetünk, és 4 adatsor kerül kimenetre. Tehát kimenetként inicializálnunk kell az Atmega 4 csapját. Kattintson a D portra. Kattintson rá a 7., 6., 5. és 4. bitet.
5. lépés: - Kattintson a Program -> Generálás, mentés és kilépés elemre . Munkánk több mint fele elkészült
6. lépés: - Készítsen egy új mappát az asztalon, hogy a fájljaink mappában maradjanak, különben az egész asztali ablakban szétszóródnak. Nevezze el mappáját, ahogy akarja, és javaslom, hogy ugyanazt a nevet használja a programfájlok mentéséhez.
Három párbeszédablak lesz egymás után a fájlok mentéséhez. Tegye ugyanezt a másik két párbeszédpanellel, amelyek az első mentése után jelennek meg.
A munkaterületed így néz ki.
A legtöbb munkát a Varázsló segítségével fejezzük be. Most csak néhány sornyi kódot kell írnunk az adó és vevő részhez, és ennyi…
Kövesse ugyanezeket a fájlokat a vevő részhez. A vevő részben csak a Led a kimenetünk, ezért tegye a B0 portot kicsit kifelé.
KÓD és magyarázat
Kódot írunk a LED vezeték nélküli kapcsolásához az RF segítségével. A teljes kódot az Atmega at adó és a vevő oldalához a cikk végén adjuk meg.
Atmega8 kód az RF adóhoz:
Először vegye fel a delay.h fejlécfájlt a késleltetés használatához a kódunkban .
#include
Most jön az utolsó sor kódot, ahol talál egy , míg hurok. Fő kódunk ebben a hurokban lesz.
A While ciklusban 0x10 bájtot küldünk a PORTD-nak, amikor a gombot megnyomjuk, és 0x20-at küldünk, ha a gombot nem nyomjuk meg. Bármilyen értéket használhat a küldéshez.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega kód az RF vevőhöz
Először deklaráljuk a változókat az érvénytelen fő funkció fölött az RF modulból érkező karakterek tárolásához.
#include
Most jöjjön a while hurok. Ebben a ciklusban tárolja a bejövő bájtokat egy char változó bájtban, és ellenőrizze, hogy a bejövő bájt megegyezik-e azzal, amit az adó részünkbe írunk. Ha a bájtok megegyeznek, akkor tegye magasra a PortB.0-t, és vegye a NOT-et a PORTB.0-ból a LED váltásához.
while (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; késleltetés_ms (1000); }}}
Építsd meg a projektet
Kódunk elkészült. Most meg kell építenünk a projektünket . Kattintson a Projekt építése ikonra az ábra szerint.
A projekt elkészítése után egy HEX fájl jön létre a Debug-> Exe mappában, amely megtalálható abban a mappában, amelyet korábban a projekt mentésére készített. Ezt a HEX fájlt fogjuk feltölteni az Atmega8-ba a Sinaprog szoftver segítségével.
Töltse fel a kódot az Atmega8-ra
Csatlakoztassa az áramköröket a megadott ábra szerint az Atmega8 programozásához. Az FRC kábel egyik oldalának csatlakoztatása az USBASP programozóhoz és a másik oldal az alábbiak szerint csatlakozik a mikrovezérlő SPI csatlakozóihoz:
- 1. tű az FRC női csatlakozóból -> 17. érintkező, Atmega8 MOSI
- A 2. érintkező az atmega8 Vcc-hez csatlakozik, azaz a 7. érintkező
- Az 5. tű csatlakozik az atmega8 visszaállításához, azaz az 1. csaphoz
- A 7. tű az atmega8 SCK-jához csatlakozik, azaz a 19. tű
- A 9. tű az atmega8 MISO-jához csatlakozik, azaz a 18. tű
- A 8. érintkező az atmega8 GND-jéhez csatlakozik, azaz a 8. tű
Csatlakoztassa a többi alkatrészt a kenyérlapon a kapcsolási rajz szerint, és nyissa meg a Sinaprog programot.
A fenti generált Hex fájlt feltöltjük a Sinaprog segítségével, ezért nyissa meg, és válassza az Eszköz legördülő menüből az Atmega8 elemet . Válassza ki a HEX fájlt a Debug-> Exe mappából az ábra szerint.
Most kattintson a Program gombra.
Kész és a mikrovezérlője be van programozva. Ugyanezekkel a lépésekkel programozhat másik Atmega-t a vevő oldalán.
A teljes kód és a bemutató videó az alábbiakban található.