fbpx

Detectando campo magnético com reed switch e Arduino

O reed switch, também conhecido como interruptor de lâmina, é um dispositivo eletrônico formado por um bulbo de vidro com duas lâminas flexíveis, hermeticamente seladas, que se movimentam com a ação de campo magnético.

Em condições normais estas lâminas encontram-se separadas e não conduzem corrente elétrica, operando como uma chave aberta. Por sua vez, quando um gerador de campo magnético – como um imã, é posto próximo a este componente, o campo magnético magnetiza suas lâminas resultando em uma atração entre elas, o que ocasiona no fechamento dos contatos e na passagem de corrente elétrica, passando a funcionar como uma chave fechada.

O reed switch encontra-se ilustrado na Figura 1. Dentre suas aplicações estão alarmes, sensor de presença ou passagem de determinado objeto, sensor de nível, entre outras.

A imagem mostra de maneira real um reed switch
Figura 1 – Reed switch.

Sabendo dessa propriedade, a proposta deste projeto é utilizar um reed switch em conjunto com a placa uso para realizar a detecção de um campo magnético.

OBSERVAÇÃO: Por possuir um invólucro de vidro, o reed switch se torna bastante frágil e deve ser manuseado com bastante cuidado.


MATERIAIS NECESSÁRIOS


ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES

Conecte os componentes na protoboard como ilustra a Figura 2. Lembre-se que a placa Arduino UNO deve estar desconectada enquanto você monta o circuito.

A imagem mostra de maneira ilustrativa o circuito para  detectar campo magnetico com reed switch
Figura 2 – Circuito para projeto detectar campo magnético com reed switch.

Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:

  • Por possuir um invólucro de vidro, o reed switch se torna bastante frágil e deve ser manuseado com bastante cuidado;
  • Assim como os resistores o reed switch não possui polaridade;
  • Um terminal do reed switch deve ser ligado ao 5 V e o outro terminal deve ser conectado ao pino digital 8. Conectamos também uma resistência de 10 kΩ entre a porta 8 e o GND da placa UNO.


ELABORANDO O CÓDIGO

A proposta desse projeto é criar um detector de campo magnético utilizando o reed switch em conjunto com a placa Arduino UNO. Esse projeto deve funcionar da seguinte maneira: Se o reed switch detectar um campo magnético uma mensagem de alerta deve ser exibida no monitor serial e o LED de alerta será acionado. Por sua vez, quando submetido a condições normais, o LED de alerta deve ser desligado.

Sabendo disso, vamos a programação do Sketch. Para melhor compreensão do código acompanhe os seguintes passos:

1. Declarar as variáveis
Iniciaremos a programação declarando três variáveis. Atribuímos a porta 8, que o reed switch encontra-se conectado, a variável reedPin. Definimos o pino 11 a variável ledPin. Declaramos a variável valorLido, do tipo inteiro, para armazenar o estado do reed switch (ligado ou desligado).

2. Configurar os pinos de entrada e saída e inicializar a comunicação serial:
A variável reedPin (pino 8) será definido como entrada (INPUT) e ledpin será definido como saída (OUTPUT);

A comunicação serial deve ser inicializada por meio da instrução: Serial.begin(9600);.

3. Realizar a leitura do reed switch:
No loop, realizamos a leitura digital da variável reedPin (pino 8) e atribuímos este valor a variável valorLido;

4. Comparar valor lido:
Utilizaremos a lógica do if…elsepara comparar se a variável valorLido encontra-se em nível alto ou baixo (campo magnético detectado ou não detectado).

  • Se a variável valorLido estiver em nível lógico baixo (LOW) o LED difuso será desligado;
  • Senão, será exibida no monitor serial a mensagem “ALERTA: Campo magnético detectado” e o LED será ligado.

Com isso, o código deste projeto fica da seguinte forma:

/*
  = DETECTOR DE CAMPO MAGNÉTICO COM REED SWITCH =
  ===============================================
  == BLOG DA ROBOTICA - www.blogdarobotica.com ==
  ===============================================
  Autor: Carol Correia Viana
  E-mail: contato@blogdarobotica.com
  Facebook: facebook.com/blogdarobotica
  Instagram:@blogdarobotica
  YouTube: youtube.com/user/blogdarobotica
  ===============================================
  == CASA DA ROBOTICA - www.casadarobotica.com ==
  ===============================================
  Facebook: facebook.com/casadaroboticaoficial
  Instagram:@casadarobotica
  ===============================================
*/

int reedPin = 8;//Atribui o pino 8 a variável reedPin
int ledpin = 11;//Atribui o pino 11 a variável ledpin
int valorLido = 0;//Variável responsável por armazenar o estado do reed Swith (LOW/HIGH)

void setup() {
  Serial.begin(9600);//Inicializa a comunicação serial, com velocidade de comunicação de 9600
  pinMode(reedPin, INPUT);//reedPin definido como entrada
  pinMode(ledpin, OUTPUT);//ledpin definido como saída
}

void loop() {
  valorLido = digitalRead(reedPin);//Armazena o valor digital de reedPin em valorLido
  if(valorLido == LOW) {//Se valorLido for igual a LOW
    digitalWrite(ledpin, LOW);//Coloca ledPin em nível baixo
  }
  else{//Senão
    Serial.println("ALERTA: Campo magnético detectado");//Escreve na serial "ALERTA: Campo magnético detectado"
    digitalWrite(ledpin, HIGH);//Coloca ledPin em nível alto
  }
  delay(100);//Intervalo de 100 milissegundos
}

OBSERVAÇÃO: Ao aproximar um imã no sensor reed switch, o LED será acionado.

Espero ter ajudado,

Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!

Att. Carol Correia Viana

Dúvidas? Deixe seu comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.