- Vereiste materialen:
- Hall-effect-sensoren:
- Schakelschema en uitleg:
- Hall Effect Sensor Arduino-code:
- Arduino Hall-effectsensor werkt:
Sensoren zijn altijd een essentieel onderdeel geweest van elk project. Dit zijn degenen die de real-time omgevingsgegevens omzetten in digitale / variabele gegevens, zodat deze door elektronica kunnen worden verwerkt. Er zijn veel verschillende soorten sensoren op de markt en u kunt er een kiezen op basis van uw vereisten. In dit project zullen we leren hoe we een Hall-sensor oftewel Hall-effectsensor kunnen gebruiken met Arduino. Deze sensor kan een magneet detecteren en ook de pool van de magneet.
Waarom een magneet detecteren ? , vraagt u zich misschien af. Welnu, er zijn veel toepassingen die de Hall Effect-sensor praktisch gebruiken en we hebben ze misschien nooit opgemerkt. Een veel voorkomende toepassing van deze sensor is het meten van snelheid in fietsen of roterende machines. Deze sensor wordt ook gebruikt in BLDC-motoren om de positie van rotormagneten te detecteren en de statorspoelen dienovereenkomstig te activeren. De toepassingen zijn eindeloos, dus laten we leren hoe we de interface van Hall-effectsensor Arduino kunnen gebruiken om nog een tool in ons arsenaal op te tellen. Hier zijn enkele projecten met Hall-sensor:
- DIY-snelheidsmeter met Arduino en Android-app verwerken
- Digitale snelheidsmeter en kilometertellercircuit met behulp van PIC-microcontroller
- Virtual Reality met behulp van Arduino en Processing
- Magnetische veldsterktemeting met Arduino
In deze tutorial zullen we de interrupts-functie van Arduino gebruiken om de magneet nabij de Hall-sensor te detecteren en een LED te laten gloeien. Meestal zal de Hall-sensor alleen worden gebruikt met Interrupts vanwege hun toepassingen waarin een hoge lees- en uitvoersnelheid vereist is, laten we daarom ook interrupts gebruiken in onze tutorial.
Vereiste materialen:
- Hall-effectsensor (elke digitale versie)
- Arduino (elke versie)
- 10k ohm en 1K ohm weerstand
- LED
- Verbindingsdraden
Hall-effect-sensoren:
Voordat we in de verbindingen duiken, zijn er enkele belangrijke dingen die u moet weten over Hall Effect-sensoren. Er zijn eigenlijk twee verschillende soorten Hall-sensoren, de ene is een digitale Hall-sensor en de andere is een analoge Hall-sensor. De digitale Hall-sensor kan alleen detecteren of een magneet aanwezig is of niet (0 of 1), maar de output van een analoge Hall-sensor varieert op basis van het magnetische veld rond de magneet, dat wil zeggen hoe sterk of hoe ver de magneet is. In dit project wordt alleen gericht op de digitale Hall-sensoren, omdat dit de meest gebruikte zijn.
Zoals de naam al doet vermoeden, werkt de Hall Effect-sensor volgens het principe van "Hall-effect". Volgens deze wet "wanneer een geleider of halfgeleider met stroom die in één richting stroomt, loodrecht op een magnetisch veld wordt geïntroduceerd, kan een spanning worden gemeten loodrecht op het stroompad". Met behulp van deze techniek kan de Hall-sensor de aanwezigheid van een magneet eromheen detecteren. Genoeg theorie, laten we het over hardware hebben.
Schakelschema en uitleg:
Het volledige schakelschema voor het koppelen van de Hall-sensor met Arduino vindt u hieronder.
Zoals je kunt zien, is het arduino-schakelschema van de hall-effectsensor vrij eenvoudig. Maar de plaats waar we vaak fouten maken, is het uitzoeken van de pincodes van Hall-sensoren. Plaats de metingen naar u toe gericht en de eerste pin aan uw linkerkant is respectievelijk de Vcc en vervolgens de aarde en het signaal.
We gaan Interrupts gebruiken zoals eerder verteld, daarom is de outputpin van de Hall-sensor verbonden met de Pin 2 van de Arduino. De pin is verbonden met een LED die wordt ingeschakeld wanneer een magneet wordt gedetecteerd. Ik heb gewoon de aansluitingen op een breadboard gemaakt en het zag er hieronder ongeveer zo uit als ik klaar was.
Hall Effect Sensor Arduino-code:
De volledige Arduino-code is slechts enkele regels en staat onderaan deze pagina die direct kan worden geüpload naar uw Arduino-bord. Als je wilt weten hoe het programma werkt, lees dan verder.
We hebben één ingang, namelijk de sensor en één uitgang, die een LED is. De sensor moet worden aangesloten als interrupt-ingang. Dus in onze setup- functie initialiseren we deze pinnen en zorgen we er ook voor dat Pin 2 werkt als een interrupt. Hier heet pin 2 Hall_sensor en pin 3 heet LED .
void setup () {pinMode (LED, OUTPUT); // LED is een output pin pinMode (Hall_sensor, INPUT_PULLUP); // Hall-sensor is input pin attachInterrupt (digitalPinToInterrupt (Hall_sensor), toggle, CHANGE); // Pin twee is een interrupt-pin die de schakelfunctie zal aanroepen}
Als er een onderbreking wordt gedetecteerd, wordt de schakelfunctie aangeroepen zoals vermeld in de bovenstaande regel. Er zijn veel interruptparameters zoals Toggle , Change, Rise, Fall etc. maar in deze tutorial detecteren we de verandering van de output van de Hall-sensor.
Nu gebruiken we binnen de toggle- functie een variabele genaamd " state " die zijn toestand zal veranderen in 0 als het al 1 is en in 1 als het al nul is. Op deze manier kunnen we de LED AAN of UIT zetten.
void toggle () {state =! state; }
Eindelijk, binnen onze lusfunctie , hoeven we alleen maar de LED te bedienen. De variabele toestand wordt elke keer dat een magneet wordt gedetecteerd, gewijzigd, daarom gebruiken we deze om te bepalen of de LED aan of uit moet blijven.
void loop () {digitalWrite (LED, toestand); }
Arduino Hall-effectsensor werkt:
Zodra u klaar bent met uw hardware en code, uploadt u de code naar de Arduino. Ik heb een 9V-batterij gebruikt om de hele set-up van stroom te voorzien, je kunt elke gewenste stroombron gebruiken. Breng nu de magneet dicht bij de sensor en je LED gaat branden en als je hem weghaalt, gaat hij uit.
Opmerking: Hall-sensor is poolgevoelig, wat betekent dat één kant van de sensor alleen de noordpool of alleen de zuidpool kan detecteren en niet beide. Dus als je een zuidpool dicht bij het noord-sensoroppervlak brengt, zal je LED niet gloeien.
Wat er werkelijk binnen gebeurt, is dat wanneer we de magneet dicht bij de sensor brengen, de sensor van toestand verandert. Deze verandering wordt waargenomen door de onderbrekingspin die de schakelfunctie aanroept waarin we de variabele "status" veranderen van 0 naar 1. Daarom zal de LED aan gaan. Als we de magneet nu van de sensor af bewegen, verandert de output van de sensor opnieuw. Deze verandering wordt opnieuw opgemerkt door onze interrupt-instructie en daarom zal de variabele "state" worden gewijzigd van 1 in 0. Dus de LED als uitgeschakeld. Hetzelfde herhaalt zich elke keer dat u een magneet dicht bij de sensor brengt.
De volledige werkvideo van het project vindt u hieronder. Ik hoop dat je het project begreep en het leuk vond om iets nieuws te bouwen. Gebruik anders de commentaarsectie hieronder of de forums voor hulp.