Code Arduino pour utiliser un capteur Hall NJK-5002C
Introduction
Ce guide montre comment construire un système de détection de champ magnétique à l'aide d'un capteur à effet Hall NJK-5002C et d'un Arduino. Le projet montre comment utiliser un aimant pour déclencher un relais, qui contrôle ensuite une charge AC, comme une ampoule ou un ventilateur. C'est un moyen pratique et sûr d'automatiser des appareils alimentés en courant alternatif à l'aide d'un signal de commande basse tension.
L'idée principale est qu'un capteur Hall détecte la présence d'un champ magnétique. Lorsqu'un aimant (plus précisément, son pôle sud) s'approche du capteur, celui-ci émet un signal bas. Un Arduino lit ce signal et active un module relais. Le relais agit comme un interrupteur, connectant ou déconnectant l'alimentation AC de votre charge. Ce montage est un élément fondamental pour de nombreux projets d'automatisation.
Voici quelques idées de projets pratiques que vous pouvez réaliser avec cette technologie :
- Éclairage automatisé : Allumer une lumière lorsqu'une porte ou une fenêtre avec un aimant est ouverte.
- Alarme de sécurité : Déclencher une alarme ou une lumière lorsqu'un contact magnétique est rompu.
- Comptage sur ligne de production : Compter des articles sur un tapis roulant lorsqu'ils passent devant un capteur avec un aimant attaché.
- Détection de position : Détecter la position d'un bras robotique ou d'une pièce de machine avec un aimant attaché.
- Verrouillage de sécurité : Couper l'alimentation d'une machine lorsqu'un protecteur de sécurité est ouvert.
Matériel requis
- Arduino Uno (ou toute carte compatible)
- Capteur à effet Hall NJK-5002C
- Module relais (5V)
- Charge AC (par exemple, une ampoule ou un petit ventilateur)
- Cordon d'alimentation pour la charge AC
- Fils de connexion
- Aimant (avec un pôle sud clairement marqué)
Guide de câblage
Le câblage de ce projet est simple. Le capteur et le module relais sont tous deux alimentés par les broches 5V et GND de l'Arduino. Le signal du capteur est lu sur une broche d'entrée numérique, et le relais est contrôlé par une broche de sortie numérique.
Voici une répartition des connexions :
- Capteur NJK-5002C :
- Fil marron → 5V de l'Arduino
- Fil bleu → GND de l'Arduino
- Fil noir → Broche numérique 2 de l'Arduino
- Module relais :
- Broche VCC → 5V de l'Arduino
- Broche GND → GND de l'Arduino
- Broche IN (ou Signal) → Broche numérique 8 de l'Arduino
- Charge AC :
- Coupez un fil du cordon d'alimentation de votre charge AC.
- Connectez une extrémité du fil coupé à la borne Normalement Ouverte (NO) du relais.
- Connectez l'autre extrémité du fil coupé à la borne Commune (COM) du relais.
(dans la vidéo à 05:09) Le schéma ci-dessous illustre ces connexions. Notez que le relais est de type à déclenchement bas, ce qui signifie qu'il s'active lorsque la broche de signal est mise à LOW.

Explication du code
Le code Arduino pour ce projet est simple et se concentre sur la lecture du capteur et le contrôle du relais. Les parties clés du code que vous pouvez configurer se trouvent en haut du croquis.
#define sensorPin 2 // broche 2
#define relayPin 8 // broche
const int wait = 3000;// après activation, attendre ce laps de temps
#define sensorPin 2: Cela définit la broche numérique de l'Arduino connectée au fil noir du capteur Hall. Vous pouvez la changer pour n'importe quelle autre broche numérique disponible.#define relayPin 8: Cela définit la broche numérique de l'Arduino connectée à la broche IN du module relais. Vous pouvez la changer pour n'importe quelle autre broche numérique disponible.const int wait = 3000;: C'est une variable très importante. Elle définit la durée en millisecondes pendant laquelle le relais restera activé après la détection de l'aimant. Dans la vidéo, elle est réglée à 3000 ms (3 secondes). Si vous voulez que le relais s'éteigne immédiatement lorsque l'aimant est retiré, réglez-la sur0. (dans la vidéo à 08:15)
Le code utilise également un delay(300) à la fin de la boucle principale. C'est un délai d'anti-rebond pour éviter des commutations rapides et involontaires. Vous pouvez ajuster cette valeur, mais un réglage de 100 ms à 300 ms est généralement bon pour un fonctionnement stable. (dans la vidéo à 11:03)
Démonstration du projet en direct
Dans la démonstration vidéo, le système est montré fonctionnant avec une ampoule AC. Lorsque le pôle sud d'un aimant est approché du capteur, la LED du capteur s'allume, l'Arduino lit un signal LOW et active le relais. Cela connecte l'alimentation AC à l'ampoule, l'allumant. Le moniteur série affiche également "Sensed".
(dans la vidéo à 11:19) Il est crucial de noter que le capteur est sensible à la polarité. Il ne se déclenchera qu'avec le pôle sud de l'aimant. Le pôle nord ne sera pas détecté. De plus, l'aimant doit être très proche et correctement aligné avec la face du capteur pour une détection fiable. La démonstration souligne que le capteur ne fonctionne pas sur le côté ou à distance.
Chapitres
- [00:00] Introduction et aperçu du projet
- [00:39] Spécifications du capteur NJK-5002C
- [02:44] Module relais et configuration du câblage
- [05:09] Schéma de câblage complet et connexion de la charge AC
- [07:55] Explication du code
- [11:19] Démonstration en direct et tests
- [13:30] Conclusion et conseils finaux
++
/*
* 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
}
Ce dont vous pourriez avoir besoin
-
Amazon
-
eBay
-
eBayAchetez NJK-5002C sur eBayebay.us
-
AliExpressPurchase NKJ-5002C from AliExpresss.click.aliexpress.com
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Aucun fichier disponible.