Contents

Interfacing Reed Switch (Magnetic Switch) with Arduino

What is Reed Switch?

Reed Switch is a magnetic switch that has two (on and off) switching modes, like a normal switch. The two pins are connected to each other by being in a magnetic field (for example, close to the magnet) and are disconnected by leaving that field. 

These switches are used in open/close door detection sensors, seat belt sensors, collision detection sensors, etc. 

Note

Some magnetic switches are Normally Close. That is, when they are not in a magnetic field, the two pins are connected, and when they are in a magnetic field, the switch is disconnected and the two pins are separated. 

In this tutorial, you will learn how to use a magnetic switch module with Arduino.  When Magnetic Switch Module is in the magnetic field, the OUT pin has a logical value of “0” and “1” otherwise. 

Magnetic Switch Pinouts

This module has 3 pins as follows: 

  • VCC: Module power supply – 3.3 to 5 Volt
  • GND: Ground
  • OUT: Output 

 

Required Material

Hardware component

Arduino UNO R3 × 1
Reed Switch × 1
Male to Female jumper wire × 1

Software Apps

Arduino IDE

Interfacing Magnetic Switch with Arduino

Step 1: Circuit

Connect the reed switch to Arduino according to the following circuit. 

Step 2: Code

This code reads the magnetic switch output and if the module is in a magnetic field displays the message “I feel Magnetic field” in the serial monitor (for example, the magnet is close to the module). 
/*   
Reed Switch  
modified on 31 Aug 2020 
by Mohammad Reza Akbari @ Electropeak 
Home
*/ int ledPin = 13; // LED connected to digital pin 13 int Sensor = 2; // Reed Switch int val = 0; // variable to store the read value void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output pinMode(Sensor, INPUT); // sets the digital pin 7 as input Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { val = digitalRead(Sensor); // read the input pin if(val == LOW){ Serial.print("I feel Magnetic field :)\n"); // print on serial port digitalWrite(ledPin, HIGH); delay(1000); } else{ digitalWrite(ledPin, LOW); } }
Liked What You See?​
Get Updates And Learn From The Best​

Leave a Reply

Your email address will not be published. Required fields are marked *