[STemWIN] Cyfrowy magnetometr na STM32 z graficzną prezentacją wyników
Funkcja rysująca dodatkowe elementy na wykresie, nazwę której przekazano jako argument dla funkcji GRAPH_SetUserDraw(), wygląda jak poniżej. Dzięki niej możliwym jest dodanie podpisu dowolnej osi (i nie tylko; można również narysować dowolną rzecz), a w danym przypadku jest to pionowa oś z wartościami napięcia.
static void _UserDraw(WM_HWIN hWin, int Stage){ if (Stage == GRAPH_DRAW_LAST) { // Polecenia tego bloku zostaną wykonane po narysowaniu wszystkich elementów wykresu char text[] = "Voltage [V]"; GUI_RECT Rect, RectInvalid; int FontSizeY; GUI_SetFont(&GUI_Font13_ASCII); FontSizeY = GUI_GetFontSizeY(); WM_GetInsideRect(&Rect); WM_GetInvalidRect(hWin, &RectInvalid); Rect.x1 = Rect.x0 + FontSizeY; GUI_SetColor(GUI_DARKGREEN); GUI_DispStringInRectEx(text, &Rect, GUI_TA_HCENTER, strlen(text), GUI_ROTATE_CCW); } }
W wyniku działania aplikacji na wykresie będzie widoczny przebieg wartości napięcia w czasie na wyjściu OUT czujnika, a poniżej prezentowane będą aktualne wartości mierzonej indukcji magnetycznej wraz z podaniem „umownej” biegunowości pola (N – biegun północny, S – biegun południowy) (fotografia 6). Pomiary są wykonywane co około 50 ms.
Fot. 6. Prezentacja wyników pomiarów w postaci wykresu i tekstu
Fot. 7. Magnesy trwałe wykorzystane w badaniach
W ramach testowania aplikacji przeprowadzono badania kilku magnesów (fotografia 7), których parametry przedstawiono w tabeli 3. Ze względu na zbyt duże wartości indukcji w pobliżu badanych magnesów oraz niewielki zakres pomiarowy czujnika, dość ciężko jest określić dokładność wskazań przyrządu. Również zauważalnym jest szum mierzonego napięcia Vout, które może oscylować w granicach do ±5 mV, co w przeliczeniu daje ±0.5 gaussów dla modelu A1395. Zakres odległości na jakich odczytana wartość indukcji danych magnesów zawierała się w zakresie pomiarowym czujnika wynosi od 7 mm do 80 mm.
Tab. 3. Parametry badanych magnesów
Materiał |
Indukcja remanencji |
Koercja |
Koercja |
Wymiary [mm] |
Kierunek magnesowania |
F30 |
0,37 – 0,40 |
175 – 210 |
180 – 220 |
25 x 10 x 5 |
wzdłuż wymiaru 5 mm |
N38 |
1,21 – 1,25 |
min. 899 |
min. 955 |
15 x 10 x 2 |
wzdłuż wymiaru 2 mm |
N38 |
1,21 – 1,25 |
min. 899 |
min. 955 |
4 x 20 |
wzdłuż wymiaru 20 mm |
Remanencja (namagnesowanie szczątkowe) – wartość indukcji magnetycznej pozostała po usunięciu zewnętrznego pola magnetycznego magnesującego dany materiał ferromagnetyczny. Remanencja jest jednym z głównych parametrów charakteryzujących magnesy trwałe.
Koercja magnetyczna – wartość zewnętrznego pola magnetycznego jaką trzeba przyłożyć do ferromagnetyka, aby zmniejszyć do zera pozostałość magnetyczną. Zależnie od wartości koercji ferromagnetyki dzieli się umownie na magnetycznie twarde (o dużej wartości koercji, powyżej 10000 A/m), magnetycznie półtwarde (o wartościach pośrednich) oraz magnetycznie miękkie (o stosunkowo niewielkich wartościach koercji, poniżej 1000 A/m).
Literatura
[1] Allegro MicroSystems A1395: Micro Power 3 V Linear Hall Effect Sensor ICs with Tri-State Output and User-Selectable Sleep Mode
[2] UM03001: emWin, Graphic Library with Graphical User Interface, User & Reference Guide
[3] http://pl.wikipedia.org/wiki/Koercja_magnetyczna
[4] http://pl.wikipedia.org/wiki/Remanencja
[5] http://stm32.eu/node/393 – Biblioteka Segger STemWin dla STM32 – graficzne HMI bez problemu!
[6] http://stm32.eu/node/391 – Biblioteka Segger STemWin w praktyce (2): menadżer okien