[PRZYKŁAD] KAmodMMA7361LC – akcelerometr analogowy i KA-NUCLEO-F411CE

Po wykonaniu powyższych czynności, należy wygenerować kod i otworzyć ulubione środowisko programistyczne w celu uzupełnienia programu.

Na początek należy załączyć bibliotekę odpowiedzialną za obsługę wyświetlacza LCD. Biblioteka została oparta o kod z książki Marka Galewskiego STM32. Aplikacje i ćwiczenia w języku C. Przy czym kod użyty w programie jest kompatybilny z biblioteką HAL i można go używać na wszystkich płytkach kompatybilnych z HAL pod warunkiem ustawienia odpowiednich etykiet pinom w programie STM32Cube. Biblioteka znajduje się w sekcji „Do pobrania”.

Kolejnym krokiem jest deklaracja wszystkich niezbędnych zmiennych. Poniżej kod z komentarzami wyjaśniającymi co do czego służy:

Kolejnym krokiem jest deklaracja własnych funkcji, które omówię za chwile:

Funkcja konwertujNaString pozwala na przedstawienie obliczonego wyniku w formie, którą można wyświetlić na ekranie LCD, tj. łańcucha znaków. Polega na podziale na części całkowitą i ułamkową, a następnie doklejeniu do łańcucha znaków.

Funkcja kalibracjaMMA77361LC dokonuje prostej kalibracji akcelerometru. Aby skalibrować akcelerometr należy znać minimalną i maksymalną wartość wysyłaną przez czujnik dla każdej z osi w momencie, gdy reaguje on tylko na przyspieszenie ziemskie (a więc jednostkę, w której wyskalowany jest przyrząd). Podczas kalibracji należy obracać akcelerometr tak, aby wyświetliła się minimalna lub maksymalna możliwa do uzyskania liczba, gdy czujnik nie porusza się. Ta liczba oznacza reakcję na przyspieszenie ziemskie działające dokładnie wzdłuż określonej osi, w kierunku „+” lub „-„. Po ustabilizowaniu się odczytu należy przycisnąć przycisk znajdujący się na płytce KA-NUCLEO. Po dokonaniu odczytów – program oblicza parametry potrzebne do wyskalowania odczytu w wielokrotnościach przyspieszenia ziemskiego. Część procesu kalibracji przedstawię na filmie obrazującym działanie przykładu.

W funkcji main najpierw inicjalizowany jest ekran LCD, następnie transmisja przez DMA. Wartości odczytane z przetwornika będą na bieżąco wpisywane do trzech elementów tablicy ACC_Raw przez cały czas trwania programu. Również przed pętlą główną uruchomiona zostaje omówiona powyżej procedura kalibracji akcelerometru.

W pętli głównej programu wartości znajdujące się w tablicy ACC_Raw zostają przeliczone na wielokrotności przyspieszenia grawitacyjnego. Następnie, po konwersji na łańcuch znaków, odczyty zostają wyświetlone na ekranie LCD.

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

Do pobrania

O autorze