- Būtini komponentai
- Naudota programinė įranga
- 433MHz radijo siųstuvas ir imtuvas
- Grandinės schema
- „Atmega 8“ projekto kūrimas naudojant „CodeVision“
- KODAS ir paaiškinimas
- Įkelkite kodą į „Atmega8“
Siekdami, kad mūsų projektai būtų belaidžiai, visada atrodo šauniai, taip pat praplečiamas diapazonas, kuriame jį galima valdyti. Pradedant naudoti įprastą IR šviesos diodą trumpojo nuotolio belaidžiui valdymui, iki ESP8266, skirto visame pasaulyje valdyti HTTP, yra daugybė būdų, kaip ką nors valdyti belaidžiu būdu. Šiame projekte mes sužinome, kaip kurti belaidžius projektus naudojant 433 MHz RF modulį ir AVR mikrovaldiklį.
Šiame projekte mes darome šiuos dalykus: -
- Mes naudojame „ Atmega8 “ radijo siųstuvui ir „ Atmega8 “ radijo imtuvo skyriui.
- Mes sujungiame šviesos diodą ir mygtuką su „Atmega8“ mikrovaldikliais.
- Siųstuvo pusėje mes sąsajame mygtuką su „Atmega“ ir perduodame duomenis. Imtuvo pusėje duomenis gausime belaidžiu būdu ir parodysime išvestį ant šviesos diodo.
- 4 bitų duomenims perduoti naudojame kodavimo įrenginį ir dekoderio IC.
- Priėmimo dažnis yra 433 MHz, naudojant rinkoje esantį pigų RF TX-RX modulį.
Būtini komponentai
- „Atmega8 AVR“ mikrovaldiklis (2)
- USBASP programuotojas
- 10 kontaktų FRC kabelis
- Duonos lenta (2)
- Šviesos diodai (2)
- Mygtukas (1)
- HT12D ir HT12E pora
- RX-TX RF modulis
- Rezistoriai (10k, 47k, 1M)
- Šuolių laidai
- 5 V maitinimo šaltinis
Naudota programinė įranga
Mes naudojame „ CodeVisionAVR“ programinę įrangą savo kodui rašyti, o „ SinaProg“ programinę įrangą įkelti savo kodą į „Atmega8“, naudodami USBASP programuotoją.
Šias programines įrangą galite atsisiųsti iš nurodytų nuorodų:
„CodeVisionAVR“ :
„SinaProg“:
Prieš pradėdami schemas ir kodus, supraskime, kaip veikia RF modulis su „Encoder-Decoder IC“.
433MHz radijo siųstuvas ir imtuvas
Tai yra siųstuvo ir imtuvo moduliai, kuriuos naudojame projekte. Tai pigiausias modulis, prieinamas 433 MHz dažniu. Šie moduliai priima nuoseklius duomenis vienu kanalu.
Jei matome modulių specifikacijas, siųstuvas yra įvertintas 3,5–12 V veikimui kaip įėjimo įtampa, o perdavimo atstumas yra 20–200 metrų. Jis perduoda AM (garso moduliacija) protokolu 433 MHz dažniu. Mes galime perduoti duomenis 4KB / S greičiu su 10mW galia.
Viršutiniame paveikslėlyje matome siųstuvo modulio prisegimą. Iš kairės į dešinę kaiščiai yra VCC, DATA ir GND. Mes taip pat galime pridėti anteną ir lituoti ant taško, pažymėto aukščiau esančiame paveikslėlyje.
Pagal imtuvo specifikaciją imtuvo įvestis turi 5 V nuolatinės srovės ir 4MA ramybės srovę. Gaunamasis dažnis yra 433,92 MHz su –105DB jautrumu.
Aukščiau pateiktame paveikslėlyje galime pamatyti imtuvo modulio kištuką. Keturi kaiščiai yra iš kairės į dešinę, VCC, DATA, DATA ir GND. Tie viduriniai du kaiščiai yra tarpusavyje sujungti. Mes galime naudoti bet kurį arba abu. Bet gera praktika yra naudoti abu mažinant triukšmo sukabinimo įtaisą.
Be to, vienas dalykas nepaminėtas duomenų lape, dažnio kalibravimui naudojamas kintamasis induktorius arba POT modulio viduryje. Jei negalėjome priimti perduotų duomenų, yra galimybių, kad perdavimo ir priėmimo dažniai nėra suderinti. Tai yra RF grandinė, todėl mes turime sureguliuoti siųstuvą tobulame perdavimo taške. Šis modulis, kaip ir siųstuvas, taip pat turi antenos prievadą; mes galime lituoti vielą susukta forma ilgesniam priėmimui.
Perdavimo diapazonas priklauso nuo siųstuvui tiekiamos įtampos ir antenų ilgio abiejose pusėse. Šiam konkrečiam projektui nenaudojome išorinės antenos, o siųstuvo pusėje naudojome 5 V įtampą. Mes patikrinome 5 metrų atstumu ir jis puikiai veikė.
Sužinokite daugiau apie RF porą RF siųstuvo ir imtuvo grandinėje. Daugiau apie RF darbą galite sužinoti patikrinę šiuos projektus, kuriuose naudojama RF pora:
- RF valdomas robotas
- IR į RF keitiklio grandinę
- RF nuotolinio valdymo LED, naudojant „Raspberry Pi“
- RF valdoma buitinė technika
Grandinės schema
RF siųstuvo pusės grandinės schema
- „Atmega8“ kaištis D7 -> „Pin13 HT12E“
- „Atmega8“ kaištis D6 -> „Pin12 HT12E“
- Atmega8 kaištis D5 -> PIN11 HT12E
- „Atmega8“ kaištis D4 -> „Pin10 HT12E“
- Mygtukas prie „Atmega“ B0 kaiščio.
- 1M omų rezistorius tarp HT12E pin15 ir 16.
- HT12E kaištis17 prie RF siųstuvo modulio duomenų kaiščio.
- 18 kontaktų iš HT12E į 5 V.
- 1–9 GND kaiščiai, HT12E 14 ir „Atmega“ 8 kaiščiai.
RF imtuvo pusės grandinės schema
- „Atmega8“ kaištis D7 -> „Pin13 HT12D“
- „Atmega8“ kaištis D6 -> „Pin12 HT12D“
- Atmega8 kaištis D5 -> PIN11 HT12D
- „Atmega8“ kaištis D4 -> „Pin10 HT12d“
- Šviesos diodas prie „Atmega“ kaiščio B0.
- „HT12D“ 14 kaištį prie RF imtuvo modulio duomenų kaiščio.
- 47ohmo rezistorius tarp HT12D 15 ir 16 kontaktų.
- 1–9 HT12D kaiščiai ir 8 „Atmega“ kaiščiai.
- Šviesos diodas, skirtas įvesti 17 HT12D.
- 5 V į „Atmega“ kaištį ir 18 HT12D kaištį.
„Atmega 8“ projekto kūrimas naudojant „CodeVision“
Įdiegę šias programines programas atlikite toliau nurodytus veiksmus, kad sukurtumėte projektą ir parašytumėte kodą:
1 žingsnis. Atidarykite „CodeVision“ Spustelėkite Failas -> Naujas -> Projektas . Atsiras patvirtinimo dialogo langas. Spustelėkite Taip
2 veiksmas. Bus atidarytas „CodeWizard“. Spustelėkite pirmąją parinktį, ty AT90 , ir spustelėkite Gerai.
3 žingsnis. Pasirinkite savo mikrovaldiklio lustą, čia mes paimsime „Atmega8“, kaip parodyta.
4 žingsnis: - Spustelėkite Uostai. Į siųstuvo dalis, Mygtukiniai yra mūsų įvesties ir 4 duomenų perdavimo linijos yra išėjimo. Taigi, mes turime inicijuoti 4 „Atmega“ kaiščius kaip išvestį. Spustelėkite „Port D.“. Spustelėkite ant jo 7, 6, 5 ir 4 bitus.
5 žingsnis: - Spustelėkite Programa -> Generuoti, išsaugoti ir išeiti . Dabar atlikta daugiau nei pusė mūsų darbo
6 žingsnis: - Padarykite naują aplanką darbalaukyje, kad mūsų failai liktų aplanke, kitaip jis bus išsibarstęs visame darbalaukio lange. Pavadinkite savo aplanką taip, kaip norite, ir aš siūlau tuo pačiu pavadinimu išsaugoti programos failus.
Norėdami išsaugoti failus, vienas po kito turėsime tris dialogo langelius. Atlikite tą patį su kitais dviem dialogo langeliais, kurie pasirodys išsaugojus pirmąjį.
Dabar jūsų darbo sritis atrodo taip.
Didžioji mūsų darbo dalis atliekama vedlio pagalba. Dabar siųstuvo ir imtuvo dalims turime parašyti tik kelias kodo eilutes ir viskas.
Atlikite tuos pačius veiksmus, kad sukurtumėte failus imtuvui. Imtuvo dalyje mūsų išvestis yra tik „Led“, todėl „B0“ prievadą padarykite šiek tiek.
KODAS ir paaiškinimas
Parašysime kodą šviesos diodui perjungti belaidžiu būdu naudojant RF. Pilnas „Atmega“ siųstuvo ir imtuvo pusių kodas pateikiamas šio straipsnio pabaigoje.
RF siųstuvo „Atmega8“ kodas:
Pirmiausia įtraukite delay.h antraštės failą, kad vėlavimas būtų naudojamas mūsų kode.
# įtraukti
Dabar eikite prie paskutinių kodo eilučių, kuriose rasite tam tikrą laiką . Pagrindinis mūsų kodas bus šioje kilpoje.
„ Nors cikle“ mes nusiųsime 0x10 baitą į PORTD, kai paspausite mygtuką, ir išsiųsime 0x20, kai mygtukas nebus paspaustas. Galite siųsti bet kokią vertę.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
RF imtuvo „ Atmega“ kodas
Pirmiausia paskelbkite kintamuosius virš negaliojančios pagrindinės funkcijos saugodami gaunamus simbolius iš RF modulio.
# įtraukti
Dabar ateiti į Nors kilpa. Šioje grandinėje saugokite gaunamus baitus į char kintamojo baitą ir patikrinkite, ar įeinantis baitas yra toks pat, kokį rašome mūsų siųstuvo dalyje. Jei baitai yra vienodi, padarykite „ PortB.0“ aukštą ir už „LED“ perjungimą paimkite NE „PORTB.0“.
while (1) { baitas = PIND; jei (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delsos_ms (1000); }}}
Sukurkite projektą
Mūsų kodas baigtas. Dabar mes turime sukurti savo projektą . Spustelėkite „Sukurti projekto piktogramą“, kaip parodyta.
Sukūrus projektą, aplanke „ Debug-> Exe“ sugeneruojamas HEX failas, kurį galite rasti aplanke, kurį anksčiau sukūrėte norėdami išsaugoti savo projektą. Šį HEX failą naudosime įkelti į „Atmega8“ naudojant „Sinaprog“ programinę įrangą.
Įkelkite kodą į „Atmega8“
Prijunkite savo grandines pagal pateiktą schemą prie programos „Atmega8“. Vienos FRC kabelio pusės prijungimas prie USBASP programuotojo ir kitos pusės bus prijungtas prie mikrovaldiklio SPI kaiščių, kaip aprašyta toliau:
- 1 kaištis iš FRC moterų jungties -> 17 kaištis, „Atmega8“ MOSI
- 2 kaištis sujungtas su atmega8 Vcc, ty 7 kaiščiu
- 5 kaištis prijungtas prie „Atmintos iš naujo“, ty 1 kontaktas
- 7 kaištis sujungtas su atmega8 SCK, ty 19 kaiščiu
- 9 kaištis prijungtas prie atmega8 MISO, ty 18 kaiščio
- 8 kaištis prijungtas prie atmega8 BND, ty 8 kaištis
Prijunkite likusius duonos elementus pagal schemą ir atidarykite „ Sinaprog“.
Įkelsime aukščiau sugeneruotą „Hex“ failą naudodami „ Sinaprog“, todėl atidarykite jį ir išskleidžiamajame meniu „Device“ pasirinkite „Atmega8“. Pasirinkite HEX failą iš aplanko Debug-> Exe, kaip parodyta.
Dabar spustelėkite Programa.
Jūs baigėte ir jūsų mikrovaldiklis yra užprogramuotas. Atlikite tuos pačius veiksmus, kad imtuvo pusėje programuotumėte kitą „Atmega“.
Pilnas kodas ir demonstracinis vaizdo įrašas pateikiamas žemiau.