Spisu treści:
- Krok 1: Co to jest czujnik Halla?
- Krok 2: Co to jest przerwanie?
- Krok 3: Połączenia i kod
- Krok 4: Dalsze działania
Wideo: Czujnik Halla Arduino z przerwaniami: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Cześć wszystkim, Dzisiaj pokażę, jak podłączyć czujnik z efektem Halla do Arduino i używać go z przerwaniem.
Narzędzia i materiały użyte w filmie (linki partnerskie):Arduino Uno:
Czujniki efektu Halla:
Różne rezystory:
Krok 1: Co to jest czujnik Halla?
Czujnik Halla to urządzenie, które służy do pomiaru wielkości pola magnetycznego. Jego napięcie wyjściowe jest wprost proporcjonalne do natężenia pola magnetycznego przez niego.
Czujniki z efektem Halla są używane do wykrywania zbliżeniowego, pozycjonowania, wykrywania prędkości i wykrywania prądu.
Ten, z którym będę dzisiaj pracował, jest oznaczony jako 3144, który jest przełącznikiem efektu Halla używanym głównie do zastosowań w wysokich temperaturach i w motoryzacji. Jego moc wyjściowa jest domyślnie wysoka i obniża się raz w obecności pola magnetycznego.
Czujnik posiada 3 piny, VCC, masę i wyjście. Możesz je zidentyfikować w tej kolejności, trzymając czujnik z etykietami do siebie. VCC znajduje się po lewej stronie, a wyjście po prawej stronie. Aby zapobiec dryfowi napięcia, rezystor 10k jest używany między VCC a wyjściem w konfiguracji podciągającej.
Krok 2: Co to jest przerwanie?
Aby podłączyć czujnik do Arduino, użyjemy prostej, ale bardzo wydajnej funkcji o nazwie Interrupt. Zadanie przerwania polega na upewnieniu się, że procesor szybko reaguje na ważne zdarzenia. Po wykryciu określonego sygnału przerwanie (jak sama nazwa wskazuje) przerywa wszystko, co robi procesor, i wykonuje kod zaprojektowany w celu reagowania na każdy zewnętrzny bodziec podawany do Arduino. Gdy kod się zakończy, procesor wraca do tego, co pierwotnie robił, tak jakby nic się nie stało!
Niesamowite w tym jest to, że struktura systemu umożliwia szybkie i wydajne reagowanie na ważne zdarzenia, które nie są łatwe do przewidzenia w oprogramowaniu. Co najważniejsze, zwalnia procesor do wykonywania innych czynności, podczas gdy czeka na pojawienie się wydarzenia.
Arduino Uno ma dwa piny, które możemy wykorzystać jako przerwania, pin 2 i 3. Funkcja, której używamy do zarejestrowania pinu jako przerwania, nazywa się attachInterrupt, gdzie jako pierwszy parametr wysyłamy pin do użycia, drugi parametr to nazwę funkcji, którą chcemy wywołać po wykryciu przerwania i jako trzeci parametr wysyłamy w trybie, w którym chcemy, aby przerwanie działało. W opisie filmu znajduje się link do pełnego opisu tej funkcji.
Krok 3: Połączenia i kod
W naszym przykładzie podłączamy czujnik efektów Halla do pinu 2 w Arduino. Na początku szkicu definiujemy zmienne dla numeru pinu wbudowanej diody LED, pinu przerwania oraz zmiennej bajtowej, której użyjemy do modyfikacji poprzez przerwanie. Ważne jest, abyśmy oznaczyli to jako ulotne, aby kompilator wiedział, że jest modyfikowany poza głównym przepływem programu przez przerwanie.
W funkcji konfiguracji najpierw określamy tryby na użytych pinach, a następnie dołączamy przerwanie, jak wyjaśniono wcześniej. Inną funkcją, której tutaj używamy, jest digitalPinToInterrupt, która jak sama nazwa wskazuje, tłumaczy numer pinu na numer przerwania.
W głównej metodzie po prostu zapisujemy zmienną stanu na pinie LED i dodajemy bardzo małe opóźnienie, aby procesor miał czas na prawidłowe działanie.
Tam, gdzie dołączyliśmy przerwanie, określiliśmy blink jako drugi parametr i jest to nazwa funkcji do wywołania. Wewnątrz po prostu odwracamy wartość stanu.
Trzecim parametrem funkcji attachIntertupt jest tryb, w którym działa. Kiedy mamy to jako CHANGE, funkcja migania będzie wykonywana za każdym razem, gdy zmieni się stan przerwania, więc zostanie wywołana raz, gdy zbliżymy magnes do czujnika i uruchomiona ponownie, gdy go usuniemy. W ten sposób dioda LED świeci, gdy trzymamy magnes blisko czujnika.
Jeśli teraz zmienimy tryb na WZNOSZĄCY, funkcja migania zostanie uruchomiona tylko wtedy, gdy zbocze narastające sygnału będzie widoczne na styku przerwania. Teraz za każdym razem, gdy zbliżamy magnes do czujnika, dioda LED albo się wyłącza, albo włącza, więc w zasadzie zrobiliśmy przełącznik magnetyczny.
Ostatnim trybem, który wypróbujemy, jest LOW. Dzięki niemu, gdy magnes jest blisko, funkcja migania będzie stale uruchamiana, a dioda LED będzie migotać, mając cały czas odwrócony stan. Kiedy usuniemy magnes, jest naprawdę nieprzewidywalne, jak skończy się stan, ponieważ zależy to od czasu. Jednak ten tryb jest naprawdę przydatny, jeśli musimy wiedzieć, jak długo przycisk był wciśnięty, ponieważ możemy to określić za pomocą funkcji pomiaru czasu.
Krok 4: Dalsze działania
Przerwania to prosty sposób na to, aby system lepiej reagował na zadania, w których liczy się czas. Mają też dodatkową zaletę zwolnienia głównej funkcji `loop()`, aby można było skoncentrować się na jakimś podstawowym zadaniu w systemie. (Uważam, że to sprawia, że mój kod jest trochę bardziej zorganizowany, gdy z nich korzystam - łatwiej jest zobaczyć, do czego został zaprojektowany główny fragment kodu, podczas gdy przerwania obsługują zdarzenia okresowe). Przykład pokazany tutaj jest prawie najbardziej podstawowa obudowa do użycia przerwań - możesz ich użyć do odczytu urządzenia I2C, wysyłania lub odbierania danych bezprzewodowych, a nawet uruchamiania lub zatrzymywania silnika.
Jeśli masz interesujące zastosowanie czujnika przerwań lub efektów halowych, daj mi znać w komentarzach, polub i udostępnij ten Instruktaż, i nie zapomnij zasubskrybować mojego kanału na YouTube, aby uzyskać więcej niesamowitych samouczków i projektów w przyszły.
Pozdrawiam i dzięki za oglądanie!
Zalecana:
DIY czujnik oddechu z Arduino (przewodzący czujnik rozciągnięcia dzianiny): 7 kroków (ze zdjęciami)
Czujnik oddechu DIY z Arduino (przewodzący czujnik rozciągnięcia dzianiny): Ten czujnik DIY przyjmie postać przewodzącego czujnika rozciągnięcia dzianiny. Będzie owijał się wokół klatki piersiowej/żołądka, a gdy klatka piersiowa/żołądek rozszerza się i kurczy, podobnie czujnik, a w konsekwencji dane wejściowe, które są przesyłane do Arduino. Więc
Zasilany energią słoneczną czujnik temperatury i wilgotności Arduino jako czujnik Oregon 433 mhz: 6 kroków
Czujnik temperatury i wilgotności Arduino zasilany energią słoneczną jako czujnik Oregon 433 mhz: Jest to konstrukcja czujnika temperatury i wilgotności zasilanego energią słoneczną. Czujnik emuluje czujnik Oregon 433 mhz i jest widoczny w bramce Telldus Net. Czujnik ruchu energii słonecznej" z serwisu eBay. Upewnij się, że mówi o cieście 3,7 V
Czujnik efektu Halla: świąteczna pozytywka: 4 kroki
Czujnik efektu Halla: Świąteczna pozytywka: To jest pozytywka, która po otwarciu odtwarza muzykę (obejrzyj wideo!). To świetny, wyjątkowy i niepowtarzalny sposób na zapakowanie prezentów dla wyjątkowej osoby! Wykorzystuje czujnik efektu Halla, aby sprawdzić, czy pokrywa została otwarta z powodu braku pola magnetycznego
Generator tonów Arduino bez biblioteki lub funkcji szeregowych (z przerwaniami): 10 kroków
Generator tonów Arduino bez biblioteki lub funkcji szeregowych (z przerwaniami): To nie jest coś, na czym normalnie robiłbym instrukcje, wolę moją metaloplastykę, ale ponieważ jestem studentem elektrotechniki i muszę wziąć udział w zajęciach z mikrokontrolerów ( Embedded Systems Design), pomyślałem, że zrobię instruktaż na jednym z moich p
Czujnik Halla na Arduino za pomocą Fidget Spinner: 3 kroki (ze zdjęciami)
Czujnik efektu Halla na Arduino za pomocą Fidget Spinner: AbstractW tym projekcie wyjaśniam, jak działa czujnik efektu Halla, mierząc prędkość fidget spinner z płytą arduino. działanie:-Czujnik Halla to przetwornik, który zmienia swoje napięcie wyjściowe w odpowiedzi na pole magnetyczne. Efekt Halla