Obsługa analogowo-cyfrowego czujnika pola magnetycznego w pyMCU
Czujnik Halla, hallotron (lub halotron) to czujnik pola magnetycznego. Pod jego wpływem czujnik ten zaczyna bądź przestaje przewodzić prąd elektryczny (w uproszczeniu). Hallotrony stosuje się w tanich silnikach elektrycznych, czy jako czujniki ruchu, przesunięcia, obrotu itp.
Dla Arduino i innych podobnych płytek dostępne są gotowe moduły z czujnikiem Halla. Ja kupiłem jeden z powszechnie dostępnych chińskich modułów. Można też kupić sam czujnik, ale trzeba zwrócić uwagę czy dany model ma typowe długie nóżki co znacząco ułatwi jego montaż.
Omawiany moduł zawiera cztery wyjścia - GND (-), ACC (+), A0, D0. W przypadku użycia pyMCU GND i ACC podłączamy do gniazd GND i ACC. Żeby odczytywać sygnał cyfrowy podłączamy D0 do D1 na pyMCU. Jeżeli chcemy analogowy to A0 podłączamy do A1 na płytce pyMCU. Żeby to ze sobą połączyć przydadzą się żeńsko-żeńskie i męsko-męskie kable połączeniowe.
Odczyt wartości analogowych przedstawiłem we wcześniejszym artykule. Ten konkretny moduł dawał wartość nieco ponad 200 przy braku pola magnetycznego i praktycznie 0 gdy pole było wystarczająco silne. W przypadku odczytu sygnału cyfrowego mamy 0 przy braku pola i 1 gdy jego natężenie jest wystarczające by uruchomić czujnik. Cyfrowy sygnał można odczytać tak:
import pymcu
mb = pymcu.mcuModule()
mb.digitalState(1, 'input')
while 1:
if mb.digitalRead(1):
print 'South'
else:
print '.'
Na rynku dostępnych jest wiele podobnych prostych czujników-modułów dla Arduino. Większość, jak nie wszystkie da się namówić do współpracy z innymi kontrolerami - takimi jak pyMCU, czy Raspberry (czy też jakaś płytka rozszerzeń do Raspberry). Można oczywiście używać ich także z Arduino - mamy wtedy pewność że to musi wtedy działać. Obsługa innych modułów powinna wyglądać bardzo podobnie do tego. Bardziej złożone (np. wyświetlacze, albo płytki z interfejsem I2C, SPI) korzystają już z innych interfejsów i ich obsługa wyglądać będzie zupełnie inaczej.
Comment article