Magos do Arduino

Sensor Magnético

Aprenda a utilizar um sensor magnético com o Arduino

Magos do Arduino

Sensor Magnético

O sensor magnético funciona como um interruptor ativado por um campo magnético.

Sensor Magnético

Ele retorna HIGH em seu pino digital quando o campo excede o limiar definido no potenciômetro.

No pino de saída analógica é possível obter uma tensão proporcional à intensidade (e polaridade) do campo magnético.

Um potenciômetro embutido permite configurar o valor do limiar para a saída digital, tornando-o personalizável conforme necessidade.

Dois LEDs estão presentes no módulo, sendo um deles indicador de que o módulo está energizado, e outro que acende quando um campo magnético acima do limiar é detectado.

Algumas aplicações comuns consistem em detectar presença de imã (proximidade), contagem de RPM, posicionamento de partes móveis, interruptores sem contato, sistemas de segurança e alarmes magnéticos, medições de intensidade de campo magnético, entre outros.

Sensor Magnético

Neste projeto você criará um circuito que faz o uso de um sensor magnético com o Arduino.

Para a criação deste circuito serão necessários os seguintes componentes:

  • 1x Breadboard
  • 1x Arduino UNO
  • 1x LED
  • 1x Resistor de 220-330 Ohms
  • 1x Módulo Sensor Magnético
  • Jumpers

Circuito Sensor Magnético

Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.

Circuito Sensor Magnético

Código fonte para o circuito do sensor magnético

Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.

/**
 * Código do curso Magos do Arduino para utilizar um sensor magnético com o Arduino. 
 * 
 * Utilize o sensor magnético para acender e apagar um LED quando um ímã for 
 * aproximado no sensor. As leituras digital e analógica do sensor são 
 * impressas no monitor serial.
 *
 * (c) Copyright KazaleIT
 * @kazaleitoficial no YouTube
 **/

#define PINO_LED 2
#define PINO_SENSOR_DIGITAL 3
#define PINO_SENSOR_ANALOGICO A0

int valorDigital = 0;
int valorAnalogico = 0;

void setup() {
  pinMode(PINO_LED, OUTPUT);
  pinMode(PINO_SENSOR_DIGITAL, INPUT);

  Serial.begin(9600);
}

void loop() {
  // faz a leitura do valor digital do sensor
  valorDigital = digitalRead(PINO_SENSOR_DIGITAL);
  // imprime o valor digital obtido pelo sensor
  Serial.print("Valor digital: ");
  Serial.println(valorDigital);

  // define o LED de acordo com o valor do sensor
  if (valorDigital == HIGH) {
    digitalWrite(PINO_LED, HIGH);
  } else {
    digitalWrite(PINO_LED, LOW);
  }

  // faz a leitura do valor analógico do sensor
  valorAnalogico = analogRead(PINO_SENSOR_ANALOGICO);
  // imprime o valor analógido obtido pelo sensor
  Serial.print("Valor analógico: ");
  Serial.println(valorAnalogico);

  delay(100);
}