Font Size

Olá tudo bem? Hoje vamos estar aprendendo a utilizar o reed switch. Um sensor com milhares exemplos de aplicações, do controle de andares para elevadores até fim de curso para portões automáticos.

Portanto vamos agora, descobrir como tudo isso funciona!

O que é reed switch?

O nosso módulo reed switch é basicamente um interruptor elétrico que é acionado quando um campo magnético é trazido para ele. Ou seja, sempre quando aproximamos um ímã perto dele, ele será acionado.

reed-switch
Construção do Reed Switch

A sua construção é feita com duas pequenas placas de metal dentro de um tubo de vidro sob vácuo como mostra a imagem acima. Assim, ao detectar o campo magnético (aproximação do ímã) as folhas se juntam e fecham o circuito.

Por que utilizar o Reed Switch?

Como já foi falado então, o interruptor será ativado quando houver um campo magnético perto dele. Dessa forma, algumas aplicações que podemos fazer com ele são de fim de curso (em portões automáticos), ou também no elevadores, para saber se o elevador chegou no andar X.

reed-switch
Interfaces do Reed Switch

Além disso, este módulo nos fornece uma interface analógica e digital. Observe na imagem acima, que este módulo tem um potenciômetro o qual é usado como um resistor pull up para calibrar a sua sensibilidade.

Ele também, possui um led on board que vai indicar se o reed switch detectou um campo magnético ou não. Estes são utilizados apenas para o mecanismo de comutação usando eletromagnetismo.

Por fim, com este módulo, podemos trabalhar com saída analógica e digital.

Componentes Necessários

Vamos agora, partir para a construção de nosso projeto de hoje. Para isso, separe os seguintes componentes:

Circuito do Projeto

Após separar os materiais listados acima, realize a ligação deles no seu Arduino seguindo o circuito da imagem abaixo.

reed-switch
Circuito de Ligação do Sensor no Arduino
Fonte: AutoCore Robótica

Código do Projeto

<code>/* ========================================================================================================
  
Projeto: Acionando carga com Sensor Reed Switch
Autor: Danilo Nogueira
Data: 20/06/2019
Domínio Público.

// ==================================================================================================*/
// --- Conexão dos Pinos ---

int Pino_Led    = 12 ;                // Pino de ligação do Led no Arduino
int Pino_Sensor =  2 ;                // Pino de ligação do sensor no Arduino
int estado_sensor;                    // Variavel para armazenar o estado do sensor
                                      // ACIONADO = HIGH || DESATIVADO = LOW

// ==================================================================================================
// --- Configurando void setup() ---
void setup ()
{
  // Definando o modo de operação do Sensor = INPUT e o Led = OUTPUT
  pinMode (Pino_Led,    OUTPUT);                               
  pinMode (Pino_Sensor,  INPUT);
}

// ==================================================================================================
// --- Configurando void loop() ---
void loop ()
{
  estado_sensor = digitalRead (Pino_Sensor);    // Lendo o estado do sensor
  
  // Caso o sensor for ativado = HIGH, faça o que está dentro do comando If.
  if (estado_sensor == HIGH)                                
  {
    digitalWrite (Pino_Led, HIGH);
  }

  // Caso o sensor não seja ativado = LOW, execute o que está dentro do bloco else
  else
  {
    digitalWrite (Pino_Led, LOW);     
  }

}
// ======================================== FIM ====================================================</code>

Estudando mais a fundo

O código de nosso projeto é bem simples como você deve ser observado. Isso porque, por se tratar de um sensor que trabalha como um interruptor digital, podemos utilizar um mesmo código do projeto de botão digital.

Dessa forma, este sensor mostra mais um das suas utilizações, ele é simples. Tanto na aplicação, como em sua programação. Então basicamente, o nosso código se resume a 3 blocos.

<code>int Pino_Led    = 12 ;       
int Pino_Sensor =  2 ;               
int estado_sensor;</code>

Para começar, temos a inicialização das variáveis as quais irão armazenar o valor do pino de cada componente, o led e o sensor. Além disso, temos a criação de uma variável para armazenar o estado do sensor.

<code>void setup ()
{
  // Definando o modo de operação do Sensor = INPUT e o Led = OUTPUT
  pinMode (Pino_Led,    OUTPUT);                               
  pinMode (Pino_Sensor,  INPUT);
}</code>

O próximo passo foi declarar o modo de de operação de cada componente do circuito. Em nosso projeto, temos o led como OUTPUT e o sensor como INPUT por estar enviando informações do seu estado ao Arduino.

<code>void loop ()
{
  estado_sensor = digitalRead (Pino_Sensor);    // Lendo o estado do sensor
  
  // Caso o sensor for ativado = HIGH, faça o que está dentro do comando If.
  if (estado_sensor == HIGH)                                
  {
    digitalWrite (Pino_Led, HIGH);
  }

  // Caso o sensor não seja ativado = LOW, execute o que está dentro do bloco else
  else
  {
    digitalWrite (Pino_Led, LOW);     
  }

}</code>

Por fim, temos a lógica de nosso código. Onde vamos estar lendo o estado do sensor e quando ele for ativado, ele aciona o led. Contudo, o led pode ser trocado por uma carga qualquer, seja ela um motor de portão ou elevador por exemplo.

Resultado do Projeto

Por fim, logo abaixo está o vídeo mostrando o funcionamento do sensor. Observe que ao aproximar o imã, o sensor é acionado e assim aciona o led.

Mas e ai? Gostou do post? Caso tenha ficado algo incompleto para você, comenta abaixo 

Dicas? 🤨 Dúvidas? 🤔 Idéias de post? 💭 Críticas? 😱 Só comentar também! 😉

Forte abraço!

5.00 avg. rating (95% score) - 1 vote