[PRZYKŁAD] Wykorzystanie czujnika Halla wraz z Arduino

W artykule przedstawiono działanie oraz przykładowe zastosowanie modułu z czujnikiem Halla. Mierzy on natężenie pola magnetycznego. Wykorzystuje zjawisko Halla – indukowanie się napięcia w materiale przewodzącym prąd umieszczonym w polu magnetycznym. W przykładzie czujnik podłączono do płytki kompatybilnej z Arduino – KAmduino UNO.

Do realizacji czynności pokazanych w poniższym artykule wykorzystano:

Rysunek 1. Moduł z czujnikiem Halla – modHALL-A3144

Użyty w przykładzie moduł posiada czujnik Halla oparty na układzie A3144. Czujnik ten pozawala na pomiar wielkości elektromagnetycznych, ale może służyć również do pomiaru kąta obrotu, przesunięcia, drgań mechanicznych itp. Na płytce znalazł się również komparator oparty na układzie LM393. Za pomocą potencjometru można ustawić wartość graniczną. Gdy wartość analogowa odczytana z czujnika Halla będzie będzie od niej większa, na odpowiednim pinie modułu zostanie wygenerowany stan wysoki. Stan wyjścia tego pinu zostanie zasygnalizowany za pomocą diody LED znajdującej się na module.

Przejdźmy do podłączenia naszego modułu do płytki KAmduino UNO. Pierwszym krokiem będzie podłączenie zasilania. Do prawidłowego działania moduł potrzebuje napięcia 5 V. Płytka posiada dwa wyjścia sygnałowe: cyfrowe oraz analogowe. Wyjście analogowe A0 podłączono do pinu A1 natomiast wyjście cyfrowe do wejścia 2 na płytce KAmduino UNO.

Zostało to przedstawione w tabeli poniżej:

Pin KAmduino UNO Pin modułu z czujnikiem Halla
+5V VCC
GND GND
A1 A0
2 D0

Zmontowany układ prezentuje się następująco:

Rysunek 2. Moduł czujnikiem Halla podłączony do płytki KAmduino UNO

Teraz przejdźmy do napisania prostego programu, który będzie odczytywał wartości z pinu analogowego oraz cyfrowego modułu z czujnikiem Halla, a następnie wyświetlał odpowiednie informacje poprzez port szeregowy.

W funkcji setup(), ustawiamy odpowiednią prędkość portu szeregowego oraz konfigurujemy role pinu 2. Ma on działać w trybie wejścia.

Następnie w pętli głównej programu loop() deklarujemy zmienne, które będą przechowywać wartość analogową oraz cyfrową odczytaną odpowiednio na pinach A1 oraz 2. Do zmiennej wartosc_cyfrowa zapisywany jest stan który jest na pinie 2, natomiast do zmiennej wartosc_analogowa przypisywana jest wartość  odczytana z pinu A1. Następnie sprawdzana jest zmienna wartosc_cyfrowa. Jeżeli wynosi ona 0 (magnes znajduje się blisko czujnika i jest ustawiony odpowiednią stroną) w monitorze portu szeregowe zostanie wyświetlony komunikat „Wykryto magnes!”

Wyświetlany komunikat o wykryciu magnesu przez czujnik Halla pokazany został na rysunku 3.

Rysunek 3. Komunikat w monitorze portu szeregowego o wykryciu przez czujnik Halla magnesu

Do pobrania

O autorze