Hall-sensoren zijn sensoren die aan de uitgang een elektrisch signaal produceren wanneer ze in contact komen met een magnetisch veld. De analoge waarde van het elektrische signaal aan de uitgang van de sensor is een functie van de sterkte van het magnetische veld. Hall-sensoren zijn tegenwoordig overal, ze worden om verschillende redenen gebruikt en in allerlei apparaten, van mobiele telefoons tot schakelaars, voor het meten van snelheid, positie en afstand in auto's en in andere op de auto-industrie gebaseerde producten. Deze veelzijdigheid van Hall-sensor maakt ze een must voor makers en elektrotechnici.Daarom zal ik ons vandaag laten zien hoe je een Hall-sensor kunt gebruiken in een Raspberry Pi-gebaseerd project.
U kunt op elk moment onze andere op Hall Sensor gebaseerde projecten bekijken, inclusief de interface van de Hall-sensor met Arduino.
Vereiste componenten
De volgende componenten / onderdelen zijn nodig om dit project te bouwen;
- Framboos pi 2 of 3
- SD-kaart (minimaal 8 GB)
- Hall-effect-sensor
- Doorverbindingsdraden
- Breadboards
- LAN-kabel
- Krachtbron
Enkele optionele onderdelen die kunnen worden gebruikt, zijn onder meer:
- Toezicht houden op
- Toetsenbord en muis
- HDMI kabel
- Wi-Fi-dongle
Deze tutorial zal gebaseerd zijn op het Raspbian stretch-besturingssysteem, dus om zoals gewoonlijk door te gaan, ga ik ervan uit dat je bekend bent met het instellen van de Raspberry Pi met het Raspbian stretch-besturingssysteem en dat je weet hoe je SSH in de raspberry pi kunt doen met behulp van een terminalsoftware zoals stopverf. Als je hier problemen mee hebt, zijn er talloze Raspberry Pi-zelfstudies op deze website die kunnen helpen.
Voor degenen die het Raspbian stretch-besturingssysteem voor het eerst zullen installeren, is een probleem dat ik heb ontdekt, de meeste mensen hebben, via ssh toegang krijgen tot de Raspberry Pi. Opgemerkt moet worden dat ssh oorspronkelijk is uitgeschakeld op het besturingssysteem en dat je ofwel een monitor nodig hebt om het in te schakelen, of onder de configuratie-opties van de raspberry pi, of je maakt een leeg bestand met de naam ssh met je Windows- of Linux-computer en kopieer het lege bestand naar de hoofdmap van de SD-kaart. U moet de SD-kar in de SDd-kaartsleuf van uw computer plaatsen om ernaar te kopiëren.
Het gebruik van de tweede methode is meer geschikt voor degenen die de pi in headless-modus uitvoeren. Met alle onderdelen gereed kunnen we overgaan tot de bouw.
Schakelschema:
Om de Hall-effectsensor met Raspberry Pi te gebruiken, sluit u de componenten aan volgens het onderstaande schema.
De Hall-sensor die voor deze tutorial wordt gebruikt, kan zowel analoge als digitale waarden aan de uitgang leveren. Maar om de tutorial te vereenvoudigen, heb ik besloten om de digitale waarde te gebruiken, omdat voor het gebruik van de analoge uitgang de aansluiting van een ADC op de Raspberry Pi vereist is.
Python-code en werkuitleg:
De Python-code voor dit Hall Sensor-project is heel eenvoudig, we hoeven alleen maar de output van de Hall-sensor te lezen en de LED dienovereenkomstig in of uit te schakelen. De LED moet worden ingeschakeld als de magneet wordt gedetecteerd en moet anders worden uitgeschakeld.
Zet je Raspberry Pi en SSH erin met stopverf (indien aangesloten in headless-modus zoals ik ben). Zoals gebruikelijk bij de meeste van mijn projecten, maak ik een directory in de homedirectory waar alles over elk project wordt opgeslagen, dus voor dit project zullen we een directory met de naam hall aanmaken. Let op: dit is slechts een persoonlijke voorkeur om dingen georganiseerd te houden.
Maak de map met;
mkdir hallsensor
Verander de map naar de nieuwe map die zojuist is gemaakt en open een editor om het python-script te maken met;
cd hallsensor
gevolgd door;
nano hallsensorcode.py
Zodra de editor is geopend, typen we de code voor het project in. Ik zal een korte uitsplitsing van de code maken om de belangrijkste concepten te laten zien, en de volledige python-code zal daarna beschikbaar worden gesteld.
We starten de code door de RPI.GPIO-bibliotheek te importeren waarmee we Python-scripts kunnen schrijven om te communiceren met de Raspberry Pi GPIO-pinnen.
importeer RPi.GPIO als gpio
Vervolgens stellen we de nummeringsconfiguratie in voor de GPIO van de Rpi die we willen gebruiken en schakelen we GPIO-waarschuwingen uit om een vrije uitvoering van de code mogelijk te maken.
gpio.setmode (gpio.BCM) gpio.setwarnings (False)
Vervolgens stellen we de GPIO-pinnen in waarop de LED en de digitale uitgang van de Hall-sensor zijn aangesloten in overeenstemming met de geselecteerde BCM-nummering.
hallpin = 2 ledpin = 3
Vervolgens stellen we de GPIO-pinnen in als invoer of uitvoer. De pin waarmee de LED is verbonden, wordt ingesteld als uitgang en degene waarop de Hall-sensor is aangesloten als ingang.
gpio.setup (hallpin, gpio.IN) gpio.setup (ledpin, gpio.OUT)
Als dat klaar is, schrijven we het grootste deel van de code, wat een while- lus is die constant de output van de Hall-sensor evalueert en de LED aanzet als een magneet wordt gedetecteerd en de LED uitschakelt als er geen magneet wordt gedetecteerd.
while True: if (gpio.input (hallpin) == False): gpio.output (ledpin, True) print ("magneet gedetecteerd") else: gpio.output (ledpin, False) print ("magnetisch veld niet gedetecteerd")
De volledige python-code met demo-video wordt aan het einde van het project gegeven.
Kopieer en bewaar de code en verlaat de editor nadat u deze hebt ingevoerd met;
CTRL + X gevolgd door y .
Na het opslaan, ga je je verbindingen nog een keer door en voer je het python-script uit met;
sudo python hallsensorcode.py
Terwijl het script loopt, licht de LED op als een magneet of iets magnetisch dichtbij de Hall-sensor wordt gebracht, zoals in de onderstaande afbeelding.
Van reed-schakelaars voor een slimme woning tot snelheidsmeters voor op de fiets, er zijn verschillende supercoole dingen die kunnen worden gebouwd met deze tutorial aan de basis. Deel gerust elk project dat u wilt bouwen in de commentaarsectie hieronder.
Bekijk allemaal onze eerdere projecten op basis van hall-sensoren:
- 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