- Požadované komponenty
- Použitý software
- 433MHz RF vysílač a přijímač
- Kruhový diagram
- Vytvoření projektu pro Atmega 8 pomocí CodeVision
- KÓD a vysvětlení
- Nahrajte kód do Atmega8
Vytváření našich projektů Bezdrátové technologie vždy vypadají skvěle a také rozšiřují dosah, ve kterém je lze ovládat. Počínaje používáním normální IR LED pro bezdrátové ovládání na krátkou vzdálenost až po ESP8266 pro celosvětové ovládání HTTP, existuje spousta způsobů, jak něco bezdrátově ovládat. V tomto projektu se učíme, jak stavět bezdrátové projekty pomocí 433 MHz RF modulu a mikrokontroléru AVR.
V tomto projektu děláme následující věci: -
- Používáme Atmega8 pro RF vysílač a Atmega8 pro sekci RF přijímač.
- Propojujeme LED a tlačítko s mikrokontroléry Atmega8.
- Na straně vysílače propojujeme tlačítko s Atmega a přenášíme data. Na straně přijímače přijmeme data bezdrátově a výstup zobrazíme na LED.
- K přenosu 4bitových dat používáme kodér a dekodér IC.
- Frekvence příjmu je 433 MHz pomocí levného modulu RF TX-RX dostupného na trhu.
Požadované komponenty
- Mikrokontrolér Atmega8 AVR (2)
- USBASP programátor
- 10kolíkový kabel FRC
- Chlebová deska (2)
- LED diody (2)
- Tlačítko (1)
- Pár HT12D a HT12E
- RF modul RX-TX
- Rezistory (10k, 47k, 1M)
- Propojovací dráty
- 5V napájení
Použitý software
K psaní našeho kódu používáme software CodeVisionAVR a software SinaProg pro nahrávání našeho kódu do Atmega8 pomocí programátoru USBASP.
Tyto programy si můžete stáhnout z uvedených odkazů:
CodeVisionAVR :
SinaProg:
Než se pustíme do schémat a kódů, pojďme pochopit fungování RF modulu s integrovanými obvody Encoder-Decoder.
433MHz RF vysílač a přijímač
Jedná se o vysílací a přijímací moduly, které v projektu používáme. Jedná se o nejlevnější dostupný modul pro 433 MHz. Tyto moduly přijímají sériová data v jednom kanálu.
Pokud vidíme specifikace modulů, je vysílač dimenzován na provoz 3,5-12 V jako vstupní napětí a vysílací vzdálenost je 20-200 metrů. Vysílá v AM (Audio Modulation) protokolu na frekvenci 433 MHz. Můžeme přenášet data rychlostí 4 kB / s výkonem 10 mW.
Na horním obrázku vidíme výčnělek modulu vysílače. Zleva doprava jsou kolíky VCC, DATA a GND. Můžeme také přidat anténu a připájet ji k bodu označenému na obrázku výše.
Pro specifikaci přijímače má přijímač jako vstup hodnocení 5V ss a 4MA klidový proud. Přijímací frekvence je 433,92 MHz s citlivostí -105 dB.
Na výše uvedeném obrázku vidíme pin-out modulu přijímače. Čtyři piny jsou zleva doprava, VCC, DATA, DATA a GND. Tyto prostřední dva kolíky jsou interně propojeny. Můžeme použít jednu nebo obě. Je ale dobrým zvykem použít obojí ke snížení hlukové vazby.
Jedna věc také není uvedena v datovém listu, pro kalibraci frekvence se používá variabilní induktor nebo POT ve středu modulu. Pokud bychom nemohli přijímat přenášená data, existují možnosti, že se vysílací a přijímací frekvence neshodují. Jedná se o RF obvod a musíme vyladit vysílač v dokonalém vysílaném kmitočtovém bodě. Stejně jako vysílač má tento modul také anténní port; můžeme pájet drát ve svinuté formě pro delší příjem.
Rozsah přenosu je závislý na napětí dodávaném do vysílače a délce antén na obou stranách. Pro tento konkrétní projekt jsme nepoužili externí anténu a použili 5V na straně vysílače. Zkontrolovali jsme to na 5 metrů a fungovalo to perfektně.
Zjistěte více o RF páru v RF vysílacím a přijímacím obvodu. Více informací o fungování RF můžete pochopit kontrolou následujících projektů, které používají RF pár:
- RF řízený robot
- Obvod převodníku IR na RF
- RF dálkově ovládané LED diody pomocí Raspberry Pi
- RF řízené domácí spotřebiče
Kruhový diagram
Schéma zapojení pro stranu RF vysílače
- Pin D7 atmega8 -> Pin13 HT12E
- Kolík D6 atmega8 -> Pin12 HT12E
- Pin D5 atmega8 -> Pin11 HT12E
- Pin D4 atmega8 -> Pin10 HT12E
- Tlačítko na pin B0 Atmega.
- 1M-ohm rezistor mezi pin15 a 16 HT12E.
- Pin17 HT12E na datový pin modulu RF vysílače.
- Kolík 18 HT12E na 5V.
- GND pin 1-9 a pin 14 HT12E a pin 8 Atmega.
Schéma zapojení na straně RF přijímače
- Pin D7 atmega8 -> Pin13 HT12D
- Pin D6 atmega8 -> Pin12 HT12D
- Pin D5 atmega8 -> Pin11 HT12D
- Pin D4 atmega8 -> Pin10 HT12d
- LED na pin B0 Atmega.
- Pin14 HT12D na datový pin modulu RF přijímače.
- 47Kohm rezistor mezi pin15 a 16 HT12D.
- GND pin 1-9 HT12D a Pin 8 Atmega.
- LED na kolík 17 HT12D.
- 5 V na pin 7 Atmega a pin 18 na HT12D.
Vytvoření projektu pro Atmega 8 pomocí CodeVision
Po instalaci těchto softwarů postupujte podle následujících kroků k vytvoření projektu a psaní kódu:
Krok 1. Otevřete CodeVision Klikněte na Soubor -> Nový -> Projekt . Zobrazí se dialogové okno Potvrzení. Klikněte na Ano
Krok 2. Otevře se CodeWizard. Klikněte na první možnost, tj. AT90 , a klikněte na OK.
Krok 3. Vyberte si čip mikrokontroléru, zde vezmeme Atmega8, jak je znázorněno.
Krok 4: - Klikněte na Porty. V části vysílače je náš vstup tlačítkem a na výstupu jsou 4 datové linky. Musíme tedy inicializovat 4 piny Atmega jako výstup. Klikněte na Port D. Kliknutím na něj udělejte bit 7, 6, 5 a 4 jako out.
Krok 5: - Klikněte na Program -> Generovat, uložit a ukončit . Nyní je více než polovina naší práce dokončena
Krok 6: - Vytvořte novou složku na ploše tak, aby naše soubory zůstaly ve složce, jinak budou rozptýleny po celém okně plochy. Pojmenujte svou složku, jak chcete, a navrhuji použít stejný název k uložení programových souborů.
Budeme mít tři dialogová okna jeden po druhém pro ukládání souborů. Totéž proveďte s dalšími dvěma dialogovými okny, která se zobrazí po uložení prvního.
Váš pracovní prostor teď vypadá takto.
Naše většina práce je dokončena pomocí Průvodce. Nyní musíme napsat jen několik řádků kódu pro část vysílače a přijímače a je to…
Stejným postupem vytvořte soubory pro část přijímače. V části přijímače je naším výstupem pouze LED, takže port B0 vysuňte ven.
KÓD a vysvětlení
Napíšeme kód pro bezdrátové přepínání LED pomocí RF. Kompletní kód pro Atmega na straně vysílače i přijímače je uveden na konci tohoto článku.
Atmega8 kód pro RF vysílač:
Nejprve zahrňte soubor záhlaví delay.h, abyste v našem kódu použili delay.
#zahrnout
Nyní přejděte na poslední řádky kódu, kde najdete chvíli smyčku. Náš hlavní kód bude v této smyčce.
Ve smyčce While pošleme 0x10 bajtů na PORTD při stisknutí tlačítka a pošleme 0x20, když není stisknuto tlačítko. K odeslání můžete použít libovolnou hodnotu.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega kód pro RF přijímač
Nejprve deklarujte proměnné nad neplatnou hlavní funkcí pro ukládání příchozích znaků z RF modulu.
#zahrnout
Nyní přejděte ke smyčce while . V této smyčce ukládejte příchozí bajty do bajtu proměnné char a zkontrolujte, zda je příchozí bajt stejný, jaký píšeme v naší části vysílače. Pokud jsou bajty stejné, zvyšte hodnotu PortB.0 a NE přepínejte LED pomocí PORTB.0.
while (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Sestavte projekt
Náš kód je dokončen. Nyní musíme postavit náš projekt . Klikněte na ikonu Sestavit projekt, jak je znázorněno.
Po sestavení projektu se ve složce Debug-> Exe vygeneruje soubor HEX, který najdete ve složce, kterou jste dříve vytvořili pro uložení projektu. Tento soubor HEX použijeme k nahrání do Atmega8 pomocí softwaru Sinaprog.
Nahrajte kód do Atmega8
Připojte své obvody podle uvedeného schématu k programu Atmega8. Připojte jednu stranu kabelu FRC k programátoru USBASP a druhou stranu připojte k pinům SPI mikrokontroléru, jak je popsáno níže:
- Pin1 FRC female konektoru -> Pin 17, MOSI of Atmega8
- Pin 2 připojený k Vcc atmega8, tj. Pin 7
- Pin 5 připojen k resetování atmega8, tj. Pin 1
- Pin 7 připojený k SCK atmega8, tj. Pin 19
- Pin 9 připojený k MISO atmega8, tj. Pin 18
- Pin 8 připojený k GND atmega8, tj. Pin 8
Připojte zbývající komponenty na prkénku podle schématu zapojení a otevřete Sinaprog.
Nahrajeme výše vygenerovaný hexadecimální soubor pomocí nástroje Sinaprog, takže jej otevřete a v rozevírací nabídce Zařízení vyberte Atmega8 . Vyberte HEX soubor ze složky Debug-> Exe , jak je znázorněno.
Nyní klikněte na Program.
Hotovo a váš mikrokontrolér je naprogramován. Stejnými kroky naprogramujte další Atmega na straně přijímače.
Kompletní kód a ukázkové video jsou uvedeny níže.