Kompas cyfrowy na STM32 i MAG3110
W przykładzie przedstawiamy realizację kompasu cyfrowego bazującego na magnetometrze MAG3110 firmy Freescale. Dodatkową funkcją aplikacji jest cyfrowe zobrazowanie temperatury odczytanej z wewnętrznego czujnika magnetometru. Projekt wykonano na zestawie ZL27ARM (KAMAMI.pl), wynik pomiaru zostanie przedstawiony w postaci graficznej na kolorowym wyświetlaczu LCD.
W przykładowej aplikacji posłużymy się 3-osiowym czujnikiem pola magnetycznego MAG3110, który za pośrednictwem magistrali I2C komunikuje się z mikrokontrolerem STM32F103 z zestawu ZL27ARM. Do zestawu jest również podłączony kolorowy wyświetlacz prezentujący dane z czujnika. Sposoby podłączenia elementów peryferyjnych do mikrokontrolera pokazano na rysunku poniżej.
Rys. 1. Schemat połączeń zestawu testowego
Schemat elektryczny modułu z sensorem MAG3110 (i alternatywnym HMC5883 firmy Honeywell) pokazano na rysunku 2, dokumentacja produkcyjna płytki drukowanej oraz artykuł prezentujący możliwości tego układu jest dostępny pod adresem.
Rys. 2. Schemat elektryczny modułu z sensorem MAG3110 (dokumnetacja do pobrania po adresem)
Po konfiguracji mikrokontrolera program przygotowuje do pracy kontroler wyświetlacza w module KAmodTFT oraz magnetometr MAG3110. Następnie w nieskończonej pętli zrealizowana jest obsługa menu głównego, program sprawdza stan przycisków celem zmiany wybranej opcji w menu:
if (!GPIO_ReadInputDataBit(JOY_SW_PORT,JOY_UP) && (pozycja>1)){
aktualizacja=pozycja;
pozycja--;
}
if (!GPIO_ReadInputDataBit(JOY_SW_PORT, JOY_DOWN) && (pozycja<4)){
aktualizacja=pozycja;
pozycja++;
}
Następnie, jeśli nie zatwierdzono wyboru przyciskiem JOY_ENTER oraz wybrana pozycja z menu się zmieniła, następuje jego przerysowanie:
//Rysowanie menu
if (aktualizacja>=0)
{
if (aktualizacja==0)
{
TFTN_Clear(0x000);
TFTN_FillRect( 0, 0, 131, 18, 0x555);
TFTN_WriteXY("MENU\0",45,2,0xFFF,0x555, font2);
}
for (i=1;i<=4;i++){
if ((i==aktualizacja)||(aktualizacja==0)) {
TFTN_FillRect( 0, i*18+8, 131, i*18+8+18, 0x000);
TFTN_WriteXY(menu[i-1],5,i*18+10,0xFFF,0x000, font2);
}
if (i==pozycja) {
TFTN_FillRect( 0, i*18+8, 131, i*18+8+18, 0x000);
TFTN_WriteXY(menu[i-1],5,i*18+10,0xF00,0x000, font2);
}
}
aktualizacja=-1;
}


Aleksandra Krajewska opowiada o nowym rozdziale w rozwoju firmy EAE Elektronik – w tym budowie nowej hali produkcyjnej
KIOXIA wprowadza urządzenia z wbudowaną pamięcią flash QLC UFS 4.1 dla rozwiązań mobilnych
Urządzenie Sentinum wykorzystuje moduł SiP firmy Nordic do raportowania danych z czujników wewnętrznych i zewnętrznych 


![https://www.youtube.com/watch?v=kmvM5hVSzCM Piata już edycja konferencji Hardware Design Masterclasses dla elektroników zaskoczyła frekwencją, tym bardziej, że spotkanie było dwudniowe. Film jest krótką relacją z wydarzenia, bazującą na wypowiedziach prelegentów. [materiał redakcyjny] Zapraszamy do obejrzenia!](https://mikrokontroler.pl/wp-content/uploads/2026/01/Rafal-tytulowe.png)


