W rzeczywistości Achim ma tutaj bardzo dobrą opinię.
Istnieje duża różnica między przekaźnikiem (przełącznikiem) kontaktronu (Reed) a czujnikiem efektu Halla.
Przede wszystkim przekaźnik Reed podłącza przełącznik za każdym razem, gdy działa na niego wystarczająca siła magnetyczna, co daje sygnał włączenia / wyłączenia. Czujnik Halla zapewnia poziom napięcia wskazujący, ile siły magnetycznej przykłada się do niego.
Powyższy kod działałby tylko „bezpośrednio” z przekaźnikiem Reeda, co nie znaczy, że w ogóle nie będzie działał dla czujnika efektu Halla, ale zapewniłby dodatkowe wyzwania przy użyciu czujnika Halla.
Podstawowym wyzwaniem będzie to, że traktujesz urządzenie analogowe jak cyfrowe - spodziewając się, że zadziała po wzroście pulsu. Teraz sygnał nie będzie pulsował - będzie ogólnie jak krzywa dzwonowa, z wszelkiego rodzaju fluktuacjami. Możesz przekroczyć minimalne napięcie dla wysokiego sygnału (około 3,5 V, IIRC?) Kilka razy, gdy magnes mija czujnik Halla.
Oczywiście, naszym pierwszym instynktem podczas używania czegoś takiego jak czujnik Halla jest użycie ADC i odczytanie poziomu napięcia na pinach analogowych. Jednak na analogowym pinie masz mniej więcej 10 000 odczytów na sekundę (każdy odczyt wymaga 100uS). Zakłada to również, że wszystko, co robisz, to zapętlanie i odczytywanie wartości - nie pozostawia wiele czasu na aktualizację wyświetlacza, obliczenia itp. Nie wspominając o tym, że jeśli czytasz w niewłaściwym czasie, przegapiłeś swój sygnał!
Jestem pewien, że można użyć przerwań w jakiś sposób powiązanych z ADC, ale nie mam takiej wiedzy pod ręką.
Zamiast tego, jeśli chcesz użyć rzeczywistego czujnika Halla, sugeruję wprowadzenie go do wyzwalacza Schmitta w celu przekształcenia go w sygnał cyfrowy (włączony / wyłączony) na skalibrowanym poziomie wskazującym „bezpośrednio pod magnesem”. Dodatkowo, w zależności od poziomu histerezy zaimplementowanej w spuście Schmitta, może być konieczne wykonanie odskoku, który zmieniłby tempo odskoku w oparciu o bieżącą prędkość. Wtedy możesz traktować to jak normalny przekaźnik Reeda.
!do
Czujniki z efektem Halla i kontaktrony są tu najczęściej wymieniane i są najlepszym rozwiązaniem.
Kontaktron będzie tańsze, ale może dać fałszywe impulsy gdy rower dostaje szoku. Jeśli to tylko jedna z jazdy na krawężniku, oprogramowanie może go łatwo odfiltrować, ale inaczej jest, gdy jeździsz po bruku, co może dać ci fałszywe impulsy przez cały czas. Bardziej odporne na uderzenia przełączniki kontaktronowe będą wymagały silniejszego pola magnetycznego do aktywacji, ale magnes neodymowy to naprawi.
Efekt przełącznik Hall nie ma tych wad, ale jest nieco droższy.
źródło
Magnes można zamontować na krawędzi obręczy koła, a czujnik Halla zamontować bardzo blisko magnesu (ale bez kontaktu z nim). Gdy koło obraca się, a magnes mija czujnik, czujnik wykryje zmiany w polu magnetycznym.
źródło
Jeśli nadal chcesz przejść do stanu półprzewodnikowego, jest wiele „przełączników efektu Halla”, które obejmują czujnik efektu Halla i wyzwalacz Schmitta z histerezą, aby zapewnić czysty cyfrowy sygnał wyjściowy bez odbicia. Przełączają się, gdy osiągnięta zostanie pewna progowa gęstość strumienia (podana w arkuszu danych). Możesz obliczyć dobrą kombinację magnesu i przełącznika lub po prostu eksperymentować.
Ta strona powie Ci o wiele więcej.
źródło
Części w komputerach rowerowych są kontaktronami, a nie czujnikami efektu Halla. Oni są zupełnie inni. Ale myślę, że wszyscy mówicie o kontaktronach.
źródło
Magnes można zamontować na szprychie, a czujnik na jednym z widelców lub na dolnej prowadnicy.
Zamiast pomnożyć przez pi itp., Metodą sugerowaną przez mój ostatni komputer rowerowy było zmierzenie odległości liniowej jednego obrotu (kreda na oponie, pomiar między dwoma znakami kredy), a następnie można pomnożyć obroty bezpośrednio przez obwód.
[EDYCJA] Właśnie znalazłem ten przewodnik na stronie z listą piktogramów na temat wdrażania komputera rowerowego za pomocą PIC, być może niektóre informacje mogą ci się przydać.
źródło