Moduły komunikacji radiowej RF są najczęściej małymi urządzeniami elektronicznymi służącymi do przesyłania i / lub odbierania sygnałów radiowych. W praktyce komunikacja RF wymaga istninia dwóch urządzeń - nadajnika (TX) i odbiornika (RX) (Fig. 1). Urządzenia są budowane dla różnych zakresów częstotliwości. Jednym z najbardziej popularnych konstrukcji wykorzystywanych przy prototypowaniu z wykorzystaniem Arduino są układy FS100A (Fig. 2). Nadajnik i odbiornik komunikują się ze sobą na częstotliwości 433 MHz. Są zasilane napięciem 3,5-12V. Z mikrokontrolerami komunikują się za pomocą jednego przewodu (TX lub RX). Zasięg nadajnika to około 200m w terenie otwartym i około 40m w terenie zabudowanym.
W sieci istnieje cała masa różnych układów nadajników RF opartych na układzie FS100A. Przedstawiam tu prosty układ, którego celem będzie przesłanie ciągu znaków zapisanych w zmiennej typu string. Układ będzie dokonywał transmisji danych każdorazowo po naciśnięciu przycisku. Do obsługi zarówno nadajnika jak i odbiornka służy biblioteka VirtualWire. Należy pamiętać, że jeżeli nie zadeklarujemy tego inaczej, nadajnik domyślnie należy podpiąć do pinu 12 mikrokontrolera, a odbiornik do pinu 11. Do zbudowania układu (Fig. 3) nadajnika będziemy potrzebowali:
Do zbudowania układu odbiornika (Fig. 4) będziemy potrzebowali:
W zmiennej toSend skryptu obsługującego nadajnik przechowywany jest komunikat, który ma zostać przesłany drogą radiową do odbiornika. Aby nadajnik przesłał go znak po znaku musimy go najpierw rozdzielić na pojedyncze znaki. Tworzona jest 20-elementowa tablica msg, do której zapisywane są kolejne znaki ciągu toSend. Przygotowana tablica jest następnie wykorzystywana przez funkcje biblioteki VirtualWire do wysłania całego stringu. Przesłanie informacji następuje kazdorażowo po naciśnieciu przycisku. O wysłaniu komunikatu informuje chwilowe zaświecenie się zielonej diody LED. Odbiornik po odebraniu informacji zaświeca czerwoną diodę LED i cały komunikat, znak po znaku przekazuje do monitora portu szeregowego (Fig. 5).
Konwersji znaków zakodowanych w kodzie heksadecymalnym możemy dokonać w dowolnym konwerterze HEX -> ASCII (Fig. 6).