Cześć chłopaki, witamy w dzisiejszym tutorialu. Dzisiaj przyjrzymy się, jak używać czujnika efektu Halla z Arduino.
Czujnik efektu Halla jest czujnikiem, który zmienia swoją moc wyjściową w oparciu o obecność lub brak pola magnetycznego. Oznacza to, że sygnał wyjściowy wytwarzany przez czujnik efektu Halla jest funkcją gęstości pola magnetycznego wokół niego. Gdy gęstość strumienia magnetycznego wokół niego przekroczy pewną ustaloną wartość progową, czujnik wykrywa to i generuje napięcie wyjściowe zwane czasami napięciem Halla, aby wskazać obecność pola magnetycznego.
Czujniki Halla stają się bardzo popularne ze względu na ich wszechstronność i są używane w wielu różnych zastosowaniach. Jednym z popularnych zastosowań czujników hallotronowych jest motoryzacja, gdzie są one wykorzystywane do wykrywania pozycji, pomiaru odległości i prędkości. Są one również wykorzystywane w nowoczesnych urządzeniach, takich jak smartfony i komputery, a także stosowane w różnego rodzaju przełączników, gdzie obecność pola magnetycznego jest używany do aktywacji lub dezaktywacji obwodu.
Czujniki Halla produkować albo analogowe lub cyfrowe wyjście w zależności od konkretnego czujnika. Niezależnie od typu, są one zazwyczaj dostarczane w trzy pin pakiet z jednym pinem do reprezentowania sygnału i dwóch pozostałych, aby zapewnić zasilanie do czujnika. To ułatwia podłączenie do dowolnego mikrokontrolera.
W dzisiejszym tutorialu zademonstrujemy, jak działa czujnik efektu Halla, podłączając go wraz z diodą LED do Arduino. Arduino zostanie zaprogramowane tak, że gdy magnes zostanie zbliżony do czujnika efektu halla, dioda LED zapali się, a gdy magnes zostanie usunięty, zgaśnie.
Potrzebne komponenty
Do zbudowania tego projektu potrzebne są następujące komponenty.
- Czujnik efektu Halla
- Cheap Arduino Uno
- Breadboard mini
- LED
- Przewody
- Magnesy
Jak zwykle, dokładne komponenty użyte w tym tutorialu można kupić poprzez linki dołączone do każdego z komponentów wymienionych powyżej.
Schematics
Schemat dla tego projektu jest prosty, ponieważ wszystko co musimy zrobić to podłączyć trzy piny czujnika halla i diodę LED do Arduino. Podłącz elementy tak, jak pokazano na poniższym schemacie.
Podłączenie jest dalej opisane poniżej, aby ułatwić śledzenie.
Czujnik Halla – Arduino
VCC - 5VGND - GNDSIG - D2
Dioda LED może być podłączona bezpośrednio do Arduino z dodatnią nóżką w pinie 13 Arduino i drugą nóżką podłączoną do pinu masy bez rezystora, ponieważ Arduino ma wewnętrzny rezystor dołączony do pinu 13.
Mając schematy zrobione, możemy przejść do kodu tego projektu.
Kod
Kod tego projektu jest naprawdę prosty, wszystko co chcemy zrobić jak wcześniej wspomniałem to sprawdzić czy pole magnetyczne jest wyczuwane i jeśli tak, włączyć diodę LED, jeśli nie, wyłączamy diodę LED.
Aby zrobić krótkie wyjaśnienie kodu dla tego projektu, pierwszą rzeczą jaką robimy jest zadeklarowanie pinów Arduino do których podłączony jest nasz czujnik halla i dioda LED, następnie tworzymy zmienną „state” która będzie przechowywać wartość z czujnika halla.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // Author: Nick Koumaris //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0;
Następnie przechodzimy do funkcji void setup gdzie deklarujemy tryb pinów Arduino do których podłączona jest dioda LED i czujnik Halla.
void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }
Następnie funkcja void loop, zadanie tutaj jest takie samo jak gdybyśmy chcieli użyć przycisku do sterowania diodą LED z Arduino pomiędzy nimi. Odczytujemy wyjście z czujnika halla i zapisujemy do zmiennej o nazwie stan. Gdy wartość jest LOW, włączamy diodę LED, HIGH, a gdy wartość jest wysoka, włączamy diodę LED Low. Konfiguracja Twojego czujnika halla może być inna, ponieważ czujnik może włączać się w stan High po wykryciu pola magnetycznego. Należy to potwierdzić w karcie katalogowej czujnika.
void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Pełny kod dla tego projektu jest pokazany poniżej, a także dostępny do pobrania w sekcji download na końcu tego poradnika.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Demo
Skopiuj kod i załaduj go do swojej płytki Arduino. Powinieneś zobaczyć, jak dioda LED przełącza się po zbliżeniu do niej magnesu, jak pokazano na poniższym obrazku.