[PRZYKŁAD] STM32 NUCLEO-L476RG i KA-Nucleo-UniExp

Po wygenerowaniu projektu należy uzupełnić kod o niezbędną funkcjonalność.

Na początek należy dołączyć bibliotekę string.h oraz zdefiniować adresy akcelerometru LIS35DE jako stałe.

Następnie zadeklarowano wszystkie niezbędne zmienne. To, jakie role będą pełnić opisałem w komentarzach do kodu.

Następnie znajdują się deklaracje funkcji używanych dalej w programie. Poniżej znajdują się także ich definicje oraz omówienie.

Funkcja HC05_Send ma za zadanie wysyłać komendę do modułu HC05 za pośrednictwem portu szeregowego. Funkcja dodaje także znaki „\r\n” niezbędne do potwierdzenia końca komendy.

Funkcja konwertujNaString ma za zadanie konwersję zmiennej typu float na łańcuch znaków. Proces ten jest niezbędny, aby przesłać wartość przez interfejs szeregowy lub np. na ekran LCD. Funkcja jest identyczna jak w innym przykładzie: [PRZYKŁAD] KAmodMMA7361LC – akcelerometr analogowy i KA-NUCLEO-F411CE.

W funkcji main, po inicjalizacji peryferiów, program uruchamia przetwornik ADC. Następnie uruchamia akcelerometr wpisując do rejestru CTRL_REG1 (20h) odpowiednią wartość (47h). Po tym do modułu HC-05 wysyłane są komendy AT, które mają za zadanie skonfigurować urządzenie. Przed wysłaniem komendy AT+RESET, pin KEY ustawiany jest w stan niski. W ten sposób, moduł Bluetooth po resecie ustawi się w tryb oczekiwania na połączenie.

W pętli głównej program pobiera z czujników wartości temperatury oraz przyspieszenia w każdej osi. Następnie oblicza i skaluje je w odpowiednich jednostkach. (temperaturę w stopniach Celsujsza, przyspieszenie w wielokrotnościach przyspieszenia ziemskiego). Za pomocą funkcji konwertujNaString wartości wpisywane są do określonych łańcuchów znaków. Na koniec dane wysyłane są przez port szeregowy do modułu Bluetooth.

Komunikacja Bluetooth wykorzystana została tu podobnie jak monitor portu szeregowego w Arduino. Wartości, wraz z odpowiednimi opisami, wysyłane są w formie tekstowej. Można je odczytać posiadając zainstalowaną na urządzeniu konsolę Bluetooth. Ja użyłem programu Bluetooth Terminal HC-05 na platformę Android. Umożliwia ona komunikację w formie tekstowej z każdym sparowanym urządzeniem.

Działanie przykładu przedstawiono na poniższym materiale wideo:

Do pobrania

O autorze