Código de Pesquisa

Código Arduino para usar um sensor Hall NJK-5002C

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.

Arduino code to use an NJK-5002C Hall sensor
Código Arduino para usar o sensor de efeito Hall NJK-5002C — Arduino code to use an NJK-5002C Hall sensor

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

Imagens

Código Arduino para usar o sensor Hall NJK-5002C
Código Arduino para usar o sensor Hall NJK-5002C
Código Arduino para usar o sensor de efeito Hall NJK-5002C
Código Arduino para usar o sensor de efeito Hall NJK-5002C
169-Arduino code to use an NJK-5002C Hall sensor
Idioma: 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
}

Coisas que você pode precisar

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.