Código Arduino para usar um sensor Hall NJK-5002C
Introdução
Este guia demonstra como construir um sistema de detecção de campo magnético usando um sensor de efeito Hall NJK-5002C e um Arduino. O projeto mostra como usar um ímã para acionar um relé, que então controla uma carga CA, como uma lâmpada ou um ventilador. Esta é uma forma prática e segura de automatizar dispositivos alimentados por CA usando um sinal de controle de baixa tensão.
A ideia central é que um sensor Hall detecta a presença de um campo magnético. Quando um ímã (especificamente, seu polo sul) se aproxima do sensor, ele emite um sinal baixo. Um Arduino lê esse sinal e ativa um módulo de relé. O relé atua como um interruptor, conectando ou desconectando a energia CA à sua carga. Esta configuração é um bloco de construção fundamental para muitos projetos de automação.
Aqui estão algumas ideias práticas de projetos que você pode construir com esta tecnologia:
- Iluminação Automatizada: Acenda uma luz quando uma porta ou janela com um ímã for aberta.
- Alarme de Segurança: Acione um alarme ou uma luz quando um contato magnético for rompido.
- Contagem em Linha de Produção: Conte itens em uma esteira transportadora conforme eles passam por um sensor com um ímã acoplado.
- Detecção de Posição: Detecte a posição de um braço robótico ou de uma peça de máquina que tenha um ímã acoplado.
- Intertravamento de Segurança: Corte a energia de uma máquina quando uma proteção de segurança for aberta.
Hardware Necessário
- Arduino Uno (ou qualquer placa compatível)
- Sensor de Efeito Hall NJK-5002C
- Módulo de Relé (5V)
- Carga CA (por exemplo, uma lâmpada ou pequeno ventilador)
- Cabo de Alimentação para a Carga CA
- Fios de Conexão (Jumper Wires)
- Ímã (com polo sul claramente marcado)
Guia de Conexões
A fiação para este projeto é simples. O sensor e o módulo de relé são ambos alimentados pelos pinos 5V e GND do Arduino. O sinal do sensor é lido em um pino de entrada digital, e o relé é controlado por um pino de saída digital.
Aqui está um detalhamento das conexões:
- Sensor NJK-5002C:
- Fio Marrom → 5V do Arduino
- Fio Azul → GND do Arduino
- Fio Preto → Pino Digital 2 do Arduino
- Módulo de Relé:
- Pino VCC → 5V do Arduino
- Pino GND → GND do Arduino
- Pino IN (ou Sinal) → Pino Digital 8 do Arduino
- Carga CA:
- Corte um fio do cabo de alimentação da sua carga CA.
- Conecte uma extremidade do fio cortado ao terminal Normalmente Aberto (NA) do relé.
- Conecte a outra extremidade do fio cortado ao terminal Comum (C) do relé.
(no vídeo em 05:09) O diagrama abaixo ilustra essas conexões. Observe que o relé é do tipo acionamento por nível baixo, ou seja, ele ativa quando o pino de sinal é colocado em LOW.

Explicação do Código
O código Arduino para este projeto é simples e foca em ler o sensor e controlar o relé. As partes principais do código que você pode configurar estão no topo do sketch.
#define sensorPin 2 // pino 2
#define relayPin 8 // pino
const int wait = 3000;// após ligar, aguarde este período de tempo
#define sensorPin 2: Isso define o pino digital do Arduino que está conectado ao fio preto do sensor Hall. Você pode alterar isso para qualquer pino digital disponível.#define relayPin 8: Isso define o pino digital do Arduino conectado ao pino IN do módulo de relé. Você pode alterar isso para qualquer pino digital disponível.const int wait = 3000;: Esta é uma variável muito importante. Ela define o tempo em milissegundos que o relé permanecerá LIGADO após o ímã ser detectado. No vídeo, está definido para 3000 ms (3 segundos). Se você quiser que o relé desligue imediatamente quando o ímã for removido, defina isso como0. (no vídeo em 08:15)
O código também usa um delay(300) no final do loop principal. Este é um atraso de debounce para evitar comutação rápida e não intencional entre ligado/desligado. Você pode ajustar esse valor, mas uma configuração de 100 ms a 300 ms é geralmente boa para uma operação estável. (no vídeo em 11:03)
Demonstração ao Vivo do Projeto
Na demonstração em vídeo, o sistema é mostrado funcionando com uma lâmpada CA. Quando o polo sul de um ímã é aproximado do sensor, o LED do sensor acende, o Arduino lê um sinal LOW e ativa o relé. Isso conecta a energia CA à lâmpada, acendendo-a. O monitor serial também imprime "Sensed".
(no vídeo em 11:19) É crucial notar que o sensor é sensível à polaridade. Ele só será acionado com o polo sul do ímã. O polo norte não será detectado. Além disso, o ímã precisa estar muito próximo e devidamente alinhado com a face do sensor para uma detecção confiável. A demonstração destaca que o sensor não funciona pela lateral ou à distância.
Capítulos
- [00:00] Introdução e Visão Geral do Projeto
- [00:39] Especificações do Sensor NJK-5002C
- [02:44] Módulo de Relé e Configuração da Fiação
- [05:09] Diagrama de Fiação Completo e Conexão da Carga CA
- [07:55] Explicação do Código
- [11:19] Demonstração ao Vivo e Testes
- [13:30] Conclusão e Dicas Finais
++
/*
* 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
}
Coisas que você pode precisar
-
AmazonasCompre NJK-5002C na Amazon EUA.amzn.to
-
eBay
-
eBayCompre NJK-5002C no eBayebay.us
-
AliExpressPurchase NKJ-5002C from AliExpresss.click.aliexpress.com
Recursos e referências
Ainda não há recursos.
Arquivos📁
Nenhum arquivo disponível.