- Wymagane składniki
- Użyte oprogramowanie
- Moduł nadajnika i odbiornika RF 433 MHz
- Schemat obwodu
- Tworzenie projektu dla Atmega 8 przy użyciu CodeVision
- KOD i wyjaśnienie
- Prześlij kod do Atmega8
Robienie naszych projektów bezprzewodowo zawsze sprawia, że wygląda fajnie, a także zwiększa zasięg, w jakim można nim sterować. Począwszy od zwykłej diody LED na podczerwień do bezprzewodowego sterowania na krótkie odległości, aż po ESP8266 do kontroli HTTP na całym świecie, istnieje wiele sposobów bezprzewodowego sterowania. W tym projekcie uczymy się jak budować projekty bezprzewodowe z wykorzystaniem modułu RF 433 MHz i mikrokontrolera AVR.
W tym projekcie wykonujemy następujące czynności: -
- Używamy Atmega8 do nadajnika RF i Atmega8 do sekcji odbiornika RF.
- Łączymy diodę i przycisk z mikrokontrolerami Atmega8.
- Po stronie nadajnika łączymy Pushbutton z Atmega i przesyłamy dane. Po stronie odbiornika dane otrzymamy bezprzewodowo i pokażemy wyjście na diodzie LED.
- Używamy kodera i dekodera IC do przesyłania 4-bitowych danych.
- Częstotliwość odbioru wynosi 433 Mhz przy użyciu taniego modułu RF TX-RX dostępnego na rynku.
Wymagane składniki
- Mikrokontroler Atmega8 AVR (2)
- Programator USBASP
- 10-pinowy kabel FRC
- Deska do chleba (2)
- Diody (2)
- Przycisk (1)
- Para HT12D i HT12E
- Moduł RF RX-TX
- Rezystory (10k, 47k, 1M)
- Przewody połączeniowe
- Zasilanie 5V
Użyte oprogramowanie
Używamy oprogramowania CodeVisionAVR do pisania naszego kodu i oprogramowania SinaProg do przesyłania naszego kodu do Atmega8 za pomocą programatora USBASP.
Możesz pobrać te programy z podanych linków:
CodeVisionAVR :
SinaProg:
Zanim przejdziemy do schematów i kodów, przyjrzyjmy się działaniu modułu RF z układami scalonymi kodera-dekodera.
Moduł nadajnika i odbiornika RF 433 MHz
To są moduły nadajnika i odbiornika, których używamy w projekcie. Jest to najtańszy moduł dostępny dla 433 MHz. Moduły te przyjmują dane szeregowe w jednym kanale.
Jeśli widzimy specyfikacje modułów, nadajnik jest przystosowany do pracy 3,5-12 V jako napięcie wejściowe, a odległość transmisji wynosi 20-200 metrów. Nadaje w protokole AM (Audio Modulation) z częstotliwością 433 MHz. Możemy przesyłać dane z prędkością 4KB / S przy mocy 10mW.
Na górnym obrazku widać wyprowadzenie modułu nadajnika. Od lewej do prawej piny to VCC, DATA i GND. Możemy też dodać antenę i przylutować ją w miejscu zaznaczonym na powyższym obrazku.
Dla specyfikacji odbiornika, odbiornik ma znamionowe napięcie 5 V DC i prąd spoczynkowy 4MA jako wejście. Częstotliwość odbioru wynosi 433,92 MHz z czułością -105DB.
Na powyższym obrazku widzimy wyprowadzenie modułu odbiornika. Cztery piny są od lewej do prawej, VCC, DATA, DATA i GND. Te dwa środkowe piny są wewnętrznie połączone. Możemy użyć jednego lub obu. Ale dobrą praktyką jest użycie obu do obniżenia sprzężenia szumowego.
Ponadto w arkuszu danych nie wspomniano o jednej rzeczy, zmienna cewka indukcyjna lub POT w środku modułu służy do kalibracji częstotliwości. Jeśli nie mogliśmy odebrać przesłanych danych, istnieje możliwość, że częstotliwości nadawcze i odbiorcze nie są dopasowane. To jest obwód RF i musimy dostroić nadajnik do punktu idealnie nadawanej częstotliwości. Podobnie jak nadajnik, ten moduł ma również port anteny; możemy przylutować drut w kręgach dla dłuższego odbioru.
Zasięg transmisji zależy od napięcia dostarczanego do Nadajnika i długości anten po obu stronach. W tym konkretnym projekcie nie użyliśmy anteny zewnętrznej i zastosowaliśmy 5 V po stronie nadajnika. Sprawdziliśmy z odległością 5 metrów i działało idealnie.
Dowiedz się więcej o parze RF w obwodzie nadajnika i odbiornika RF. Możesz dowiedzieć się więcej o działaniu RF, sprawdzając następujące projekty wykorzystujące parę RF:
- Robot sterowany radiowo
- Obwód konwertera IR na RF
- Zdalnie sterowane diody LED za pomocą Raspberry Pi
- Urządzenia domowe sterowane radiowo
Schemat obwodu
Schemat obwodu po stronie nadajnika RF
- Pin D7 atmega8 -> Pin13 HT12E
- Pin D6 atmega8 -> Pin12 HT12E
- Pin D5 atmega8 -> Pin11 HT12E
- Pin D4 atmega8 -> Pin10 HT12E
- Przycisk do pinu B0 Atmega.
- Rezystor 1M-omowy między pinami 15 i 16 HT12E.
- Pin17 HT12E do pin danych modułu nadajnika RF.
- Pin 18 HT12E do 5V.
- GND pin 1-9 i pin 14 HT12E i pin 8 Atmega.
Schemat obwodu po stronie odbiornika RF
- Pin D7 atmega8 -> Pin13 HT12D
- Pin D6 atmega8 -> Pin12 HT12D
- Pin D5 atmega8 -> Pin11 HT12D
- Pin D4 atmega8 -> Pin10 HT12d
- Dioda LED do styku B0 Atmega.
- Pin14 HT12D do pin danych modułu odbiornika RF.
- Rezystor 47 kiloomów między pinami 15 i 16 HT12D.
- GND pin 1-9 HT12D i pin 8 Atmega.
- Dioda LED na pinie 17 HT12D.
- 5 V do pinu 7 Atmega i pinu 18 HT12D.
Tworzenie projektu dla Atmega 8 przy użyciu CodeVision
Po zainstalowaniu tego oprogramowania wykonaj poniższe czynności, aby utworzyć projekt i napisać kod:
Krok 1. Otwórz CodeVision Kliknij Plik -> Nowy -> Projekt . Pojawi się okno dialogowe potwierdzenia. Kliknij Tak
Krok 2. CodeWizard otworzy się. Kliknij pierwszą opcję, tj. AT90 , i kliknij OK.
Krok 3. Wybierz chip mikrokontrolera, tutaj zajmiemy się Atmega8, jak pokazano.
Krok 4: - Kliknij Porty. W części nadajnika, Pushbutton jest naszym wejściem i wyprowadzane są 4 linie danych. Musimy więc zainicjalizować 4 piny Atmega jako wyjście. Kliknij Port D. Ustaw bity 7, 6, 5 i 4 na zewnątrz, klikając je.
Krok 5: - Kliknij Program -> Wygeneruj, zapisz i wyjdź . Teraz ponad połowa naszej pracy jest zakończona
Krok 6: - Utwórz nowy folder na pulpicie, aby nasze pliki pozostały w folderze, w przeciwnym razie zostaną rozrzucone po całym oknie pulpitu. Nazwij swój folder, jak chcesz, a sugeruję użycie tej samej nazwy do zapisywania plików programu.
Będziemy mieć trzy okna dialogowe jedno po drugim do zapisywania plików. Zrób to samo z pozostałymi dwoma oknami dialogowymi, które pojawią się po zapisaniu pierwszego.
Teraz twój obszar roboczy wygląda tak.
Większość naszej pracy wykonujemy z pomocą Kreatora. Teraz musimy napisać tylko kilka wierszy kodu dla części nadajnika i odbiornika i to wszystko…
Wykonaj te same kroki, aby utworzyć pliki dla części Odbiornik. W części odbiorczej tylko Led jest naszym wyjściem, więc ustaw port B0 na wyjście.
KOD i wyjaśnienie
Napiszemy kod do bezprzewodowego przełączania diody za pomocą RF. Kompletny kod dla Atmega po stronie nadajnika i odbiornika podano na końcu tego artykułu.
Kod Atmega8 dla nadajnika RF:
Najpierw dołącz plik nagłówkowy delay.h , aby użyć opóźnienia w naszym kodzie.
#zawierać
Teraz dochodzimy do ostatniego linii kodu, w którym znajdą Państwo while pętli. Nasz główny kod będzie w tej pętli.
W pętli While wyślemy 0x10 bajtów do PORTD po naciśnięciu przycisku i wyślemy 0x20, gdy przycisk nie jest wciśnięty. Możesz użyć dowolnej wartości do wysłania.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Kod Atmega dla odbiornika RF
Najpierw zadeklaruj zmienne powyżej void main function do przechowywania znaków przychodzących z modułu RF.
#zawierać
Teraz przechodzimy do while pętli. W tej pętli zapisz przychodzące bajty do bajtu zmiennej char i sprawdź, czy przychodzący bajt jest taki sam, jak piszemy w naszej części nadajnika. Jeśli bajty są takie same, ustaw PortB.0 na wysoki i weź NIE z PORTB.0 do przełączania diody LED.
while (1) { bajt = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; opóźnienie_ms (1000); }}}
Zbuduj projekt
Nasz kod jest gotowy. Teraz musimy zbudować nasz projekt . Kliknij ikonę Zbuduj projekt, jak pokazano.
Po zbudowaniu projektu w folderze Debug-> Exe generowany jest plik HEX, który znajduje się w folderze utworzonym wcześniej do zapisania projektu. Użyjemy tego pliku HEX do przesłania do Atmega8 za pomocą oprogramowania Sinaprog.
Prześlij kod do Atmega8
Podłącz swoje obwody zgodnie z podanym schematem do programu Atmega8. Podłącz jedną stronę kabla FRC do programatora USBASP, a drugą połączysz do pinów SPI mikrokontrolera, jak opisano poniżej:
- Pin1 złącza żeńskiego FRC -> Pin 17, MOSI Atmega8
- Pin 2 podłączony do Vcc atmega8 czyli Pin 7
- Pin 5 podłączony do resetowania atmega8 czyli Pin 1
- Pin 7 podłączony do SCK atmega8 czyli Pin 19
- Pin 9 podłączony do MISO atmega8 czyli Pin 18
- Pin 8 podłączony do GND atmega8 czyli Pin 8
Podłącz pozostałe komponenty na płytce stykowej zgodnie ze schematem obwodu i otwórz Sinaprog.
Prześlemy powyższy plik Hex za pomocą Sinaprog, więc otwórz go i wybierz Atmega8 z rozwijanego menu Urządzenie. Wybierz plik HEX z folderu Debug-> Exe, jak pokazano.
Teraz kliknij Program.
Skończyłeś i Twój mikrokontroler jest zaprogramowany. Wykonaj te same kroki, aby zaprogramować kolejną Atmega po stronie odbiornika.
Pełny kod i film demonstracyjny znajduje się poniżej.