Arduino-Code zur Verwendung eines NJK-5002C-Hall-Sensors
Einführung
Diese Anleitung zeigt, wie man ein Magnetfelderkennungssystem mit einem NJK-5002C-Hall-Effekt-Sensor und einem Arduino aufbaut. Das Projekt zeigt, wie man mit einem Magneten ein Relais auslöst, das dann eine AC-Last wie eine Glühbirne oder einen Ventilator steuert. Dies ist eine praktische und sichere Möglichkeit, AC-betriebene Geräte mit einem Niederspannungs-Steuersignal zu automatisieren.
Die Kernidee ist, dass ein Hall-Sensor das Vorhandensein eines Magnetfelds erkennt. Wenn ein Magnet (insbesondere sein Südpol) in die Nähe des Sensors kommt, gibt er ein niedriges Signal aus. Ein Arduino liest dieses Signal und aktiviert ein Relaismodul. Das Relais fungiert als Schalter, der die AC-Stromversorgung zu Ihrer Last verbindet oder trennt. Dieser Aufbau ist ein grundlegender Baustein für viele Automatisierungsprojekte.
Hier sind einige praktische Projektideen, die Sie mit dieser Technologie umsetzen können:
- Automatische Beleuchtung: Schalten Sie ein Licht ein, wenn eine Tür oder ein Fenster mit einem Magneten geöffnet wird.
- Sicherheitsalarm: Lösen Sie einen Alarm oder ein Licht aus, wenn ein Magnetkontakt unterbrochen wird.
- Produktionslinien-Zählung: Zählen Sie Artikel auf einem Förderband, wenn sie mit einem Magneten an einem Sensor vorbeilaufen.
- Positionserkennung: Erkennen Sie die Position eines Roboterarms oder eines Maschinenteils, an dem ein Magnet angebracht ist.
- Sicherheitsverriegelung: Unterbrechen Sie die Stromversorgung einer Maschine, wenn eine Schutzeinrichtung geöffnet wird.
Benötigte Hardware
- Arduino Uno (oder ein beliebiges kompatibles Board)
- NJK-5002C-Hall-Effekt-Sensor
- Relaismodul (5V)
- AC-Last (z. B. eine Glühbirne oder ein kleiner Ventilator)
- Netzkabel für die AC-Last
- Jumper-Kabel
- Magnet (mit deutlich markiertem Südpol)
Verdrahtungsanleitung
Die Verdrahtung für dieses Projekt ist unkompliziert. Der Sensor und das Relaismodul werden beide über die 5V- und GND-Pins des Arduino mit Strom versorgt. Das Signal des Sensors wird an einem digitalen Eingangspin gelesen, und das Relais wird über einen digitalen Ausgangspin gesteuert.
Hier ist eine Aufschlüsselung der Verbindungen:
- NJK-5002C-Sensor:
- Braunes Kabel → Arduino 5V
- Blaues Kabel → Arduino GND
- Schwarzes Kabel → Arduino Digitalpin 2
- Relaismodul:
- VCC-Pin → Arduino 5V
- GND-Pin → Arduino GND
- IN- (oder Signal-) Pin → Arduino Digitalpin 8
- AC-Last:
- Schneiden Sie ein Kabel des Netzkabels Ihrer AC-Last durch.
- Verbinden Sie ein Ende des durchtrennten Kabels mit dem Schließer-Kontakt (NO) des Relais.
- Verbinden Sie das andere Ende des durchtrennten Kabels mit dem gemeinsamen Kontakt (COM) des Relais.
(im Video bei 05:09) Das folgende Diagramm veranschaulicht diese Verbindungen. Beachten Sie, dass das Relais ein Niedrig-Trigger-Typ ist, was bedeutet, dass es aktiviert wird, wenn der Signalpin auf LOW gesetzt wird.

Code-Erklärung
Der Arduino-Code für dieses Projekt ist einfach und konzentriert sich auf das Lesen des Sensors und die Steuerung des Relais. Die wichtigsten Teile des Codes, die Sie konfigurieren können, befinden sich am Anfang des Sketches.
#define sensorPin 2 // Pin 2
#define relayPin 8 // Pin
const int wait = 3000;// Nach dem Einschalten diese Zeit warten
#define sensorPin 2: Dies definiert den digitalen Arduino-Pin, der mit dem schwarzen Kabel des Hall-Sensors verbunden ist. Sie können dies auf jeden verfügbaren digitalen Pin ändern.#define relayPin 8: Dies definiert den digitalen Arduino-Pin, der mit dem IN-Pin am Relaismodul verbunden ist. Sie können dies auf jeden verfügbaren digitalen Pin ändern.const int wait = 3000;: Dies ist eine sehr wichtige Variable. Sie legt die Zeit in Millisekunden fest, die das Relais nach der Erkennung des Magneten eingeschaltet bleibt. Im Video ist sie auf 3000 ms (3 Sekunden) eingestellt. Wenn Sie möchten, dass sich das Relais sofort ausschaltet, wenn der Magnet entfernt wird, setzen Sie diesen Wert auf0. (im Video bei 08:15)
Der Code verwendet außerdem ein delay(300) am Ende der Hauptschleife. Dies ist eine Entprellverzögerung, um schnelles, unbeabsichtigtes Ein-/Ausschalten zu verhindern. Sie können diesen Wert anpassen, aber eine Einstellung von 100 ms bis 300 ms ist für einen stabilen Betrieb im Allgemeinen gut. (im Video bei 11:03)
Live-Projektdemonstration
In der Videodemonstration wird das System mit einer AC-Glühbirne gezeigt. Wenn der Südpol eines Magneten in die Nähe des Sensors gebracht wird, leuchtet die LED des Sensors auf, der Arduino liest ein LOW-Signal und aktiviert das Relais. Dadurch wird die AC-Stromversorgung mit der Glühbirne verbunden und diese eingeschaltet. Der serielle Monitor gibt außerdem "Sensed" aus.
(im Video bei 11:19) Es ist wichtig zu beachten, dass der Sensor polaritätsempfindlich ist. Er wird nur mit dem Südpol des Magneten ausgelöst. Der Nordpol wird nicht erkannt. Darüber hinaus muss der Magnet sehr nah und richtig zur Sensorfläche ausgerichtet sein, um eine zuverlässige Erkennung zu gewährleisten. Die Demonstration zeigt, dass der Sensor nicht von der Seite oder aus der Entfernung funktioniert.
Kapitel
- [00:00] Einführung und Projektübersicht
- [00:39] NJK-5002C-Sensorspezifikationen
- [02:44] Relaismodul und Verdrahtungsaufbau
- [05:09] Vollständiges Verdrahtungsdiagramm und AC-Lastanschluss
- [07:55] Code-Erklärung
- [11:19] Live-Demonstration und Tests
- [13:30] Fazit und abschließende Tipps
++
/*
* This is the Arduino code to use NJK-5002C hall sensor to control a DC or AC load.
* In the video, I have explained that this can be used without Arduino and with Arduino.
* Watch video instructions on YouTube: https://youtu.be/7RQ8QoJWhpY
*
*
* Written by Ahmad Shamshiri for Roboja Video, www.Robojax.com
* Date: November 10, 2018, Saturday at 09:34 in Ajax, Ontario, Canada
* Please keep this note with the code.
* This code is available on Robojax.com
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#define sensorPin 2 // pin 2
#define relayPin 8 // pin
const int wait = 3000;// after switched ON, wait for this amount of time
void setup() {
// Robojax.com 20181110 NJK-5002C hall sensor
pinMode(sensorPin, INPUT_PULLUP);// define pin as input for sensor
// watch video explaining the INPUT_PULLUP
//https://robojax.com?vid=robojax-push_botton_resistor
pinMode(relayPin, OUTPUT);// define pin as output
Serial.begin(9600);// initialize serial monitor with 9600 baud.
}
void loop() {
// Robojax.com 20181110 NJK-5002C hall sensor
int sensed = digitalRead(sensorPin);// read pin 2 and put the result in the "sensed" variable
if(sensed == LOW){
Serial.println("Sensed");
digitalWrite(relayPin, LOW);// if sensed turn relay ON
delay(wait);// keep the relay ON for the "wait" amount of time
}else{
digitalWrite(relayPin, HIGH);// else turn the relay OFF
Serial.println("====");
}
delay(300);// delay for 0.3 seconds
// Robojax.com 20181110 NJK-5002C hall sensor
}
Dinge, die Sie vielleicht brauchen
-
Amazon
-
eBay
-
eBayKaufen Sie NJK-5002C bei eBay.ebay.us
-
AliExpressPurchase NKJ-5002C from AliExpresss.click.aliexpress.com
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.
Dateien📁
Keine Dateien verfügbar.