[PRZYKŁAD] Komunikacja w paśmie ISM i KA-NUCLEO-F411CE
Niniejszy artykuł pokazuje przykład sterowania urządzeniami zewnętrznymi za pomocą komunikacji w paśmie ISM. Sygnały z pilota zdalnego sterowania przetwarzane są przez mikrokontroler STM32 zawarty na płytce KA-NUCLEO-F411CE i w ten sposób sterowane są elementy wyjściowe: diody LED oraz Buzzer.
W przykładzie wykorzystano następujące komponenty:
- Pilot bezprzewodowy 4-kanałowy do Arduino (UWAGA! Ze względu na obowiązujące w Polsce przepisy, tory radiowe ISM 315 MHz można używać wyłącznie w celach testowych)
- KA-NUCLEO-F411CE – płytka rozwojowa z mikrokontrolerem STM32F411CE
- Aktywny Buzzer z generatorem KEYES KY-012
- Trzy różnokolorowe diody LED
- Trzy rezystory 270Ω
- Płytka stykowa
- Przewody męsko-żeńskie i męsko-męskie
Moduł pilota bezprzewodowego 4-kanałowego do Arduino składa się z samego pilota z czterema przyciskami oraz modułu odbiornika. Komunikacja odbywa się w paśmie ISM 315 MHz. Zasięg, według producenta, wynosi od 50 do 100 metrów. Trochę mniej techniczną cechą pilota jest ciekawy wygląd. Moduł jest kompatybilny z platformą Arduino. Komunikacja modułu z urządzeniami zewnętrznymi jest prosta: gdy odbiornik odczyta informacje o przyciśnięciu przycisku wprowadza jeden z pinów D0-D3 w stan wysoki. Dodatkowo pin VT wprowadzany jest w stan wysoki, gdy którykolwiek z przycisków na pilocie jest wciśnięty. Poniżej znajduje się tabela opisująca to, który pin odpowiada któremu przyciskowi na pilocie.
Pin wyjściowy odbiornika | Przycisk na pilocie |
D0 | B |
D1 | D |
D2 | A |
D3 | C |
Sygnały z pilota zdalnego sterowania są przetwarzane przez mikrokontroler STM32F4 zawarty na płytce KA-NUCLEO-F411CE i w ten sposób sterowane będą elementy wyjściowe: diody LED oraz Buzzer. Jedno naciśniecie przycisku powoduje włączenie elementu, następne – jego wyłączenie. Sterowanie odbywa się za pomocą przerwań – gdy mikrokontroler zauważy zbocze rosnące na linii VT wchodzi w stan obsługi przerwania. W tym ostatnim zmienia stan linii według tego, który przycisk jest włączony. Moduł odbiornika powinien być zasilany napięciem 5 V (przy zasilaniu odbiornika napięciem 3,3 V układ działa, ale zasięg drastycznie spada – do kilku centymetrów). Także poziom wysoki linii D0-D3 oraz VT wynosi 5 V, w związku z tym należy podłączyć odbiornik do tych pinów mikrokontrolera, które tolerują napięcie 5 V. Linie, do których nie należy podłączać napięcia wyższego niż 3,3 V to PA0 (A0), PA4 (A2), PA5(D13), PB5 (D4). Nie należy również podłączać wejść odbiornika do pinu PA3 (D0), gdyż jest tam podłączony pin RX portu szeregowego połączony z programatorem. Przykładowe połączenie modułu odbiornika z płytką Nucleo przedstawiono w poniższej tabeli:
Pin odbiornika |
Pin KA-NUCLEO-F411CE | Pin mikrokontrolera STM32F411 |
D0 | D5 | PB4 |
D1 | D3 | PB3 |
D2 | D2 | PA10 |
D3 | D1 | PA2 |
VT | D6 | PB10 |
5 V | +5 V | – |
GND | GND | – |
Urządzenia, którymi można sterować za pomocą pilota to trzy różnokolorowe diody LED oraz buzzer aktywny. Diody należy połączyć szeregowo z rezystorem – wartość 270Ω dla napięcia sterującego 3,3 V jest odpowiednia. Oczywiście istnieje możliwość podłączenia innych urządzeń sterowanych binarnie. Dzięki modułom z przekaźnikami można sobie pozwolić na sterowanie urządzeń wymagających większego napięcia/większej mocy niż można uzyskać z mikrokontrolera. Przypisanie pinów do urządzeń w tym przykładzie przedstawiono w tabeli:
Pin KA-NUCLEO-F411CE | Urządzenie | Pin mikrokontrolera STM32F411 |
D8 | Dioda czerwona | PA9 |
D9 | Dioda zielona | PB7 |
D10 | Dioda żółta | PB6 |
D11 | pin sterujący buzzera | PA7 |
Zmontowany układ można obejrzeć na poniższym zdjęciu: