Code de recherche

Code Arduino pour utiliser un capteur Hall NJK-5002C

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.

Arduino code to use an NJK-5002C Hall sensor
Code Arduino pour utiliser le capteur à effet Hall NJK-5002C — Arduino code to use an NJK-5002C Hall sensor

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 sur 0. (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

Images

Code Arduino pour utiliser le capteur à effet Hall NJK-5002C
Code Arduino pour utiliser le capteur à effet Hall NJK-5002C
Code Arduino pour utiliser le capteur à effet Hall NJK-5002C
Code Arduino pour utiliser le capteur à effet Hall NJK-5002C
169-Arduino code to use an NJK-5002C Hall sensor
Langue: C++
++
/*
 * 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

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Aucun fichier disponible.