Grove Hall Sensor - Arduino

by appytechie in Circuits > Arduino

4073 Views, 8 Favorites, 0 Comments

Grove Hall Sensor - Arduino

IMG_20150827_190349.jpg
IMG_20150827_190245.jpg
IMG_20150827_190102.jpg

After posting a couple of tutorials on instructables, I got a few grove sensors so I thought I would write about it, so the next couple of instructables I will using grove sensors. Seeed Studio has a wide range different sensors, but I will be writing about the most commonly used ones and these sensors will be part of more complex projects.

To start of I'm using the grove Hall Sensor, a hall sensor detects magnetic field and when you take a magnet near it it would send a signal to a micro-controller (in this case we are using an arduino).

So lets get started...

Tools and Components

IMG_20150827_185807.jpg

All that you need to get started is

  • Arduino UNO
  • Grove Hall Sensor
  • BreadBoard
  • LED
  • Jumper wires

The Grove Hall Sensor can be brought form Seeed Studio.

Circuit

IMG_20150827_185817.jpg
Screenshot from 2015-08-28 10:37:17.png

Now its time to hook up the connections, the connections goes as follows -

  • VCC => Arduino +5v
  • Gnd => Arduino Gnd
  • Sig => Arduino D2

Then upload the code below to check the connections.

void setup()  {<br>  Serial.begin(9600);
  pinMode(2,INPUT);
}
void loop()  {
  while(1)  {
    delay(500);
    if(digitalRead(2)==LOW)  {
      Serial.println("Magnet in range");
    }
    else  {
      Serial.println("Magnet out of range");
    }
  }

}

If everything went fine you should have "Magnet out of range" outputed in the serial monitor and "Magnet in range" when the magnet is close to the IC.

Control and LED

IMG_20150827_190349.jpg
IMG_20150827_190245.jpg
Screenshot from 2015-08-28 10:45:01.png

In this step I'm going to show you how to control an LED, such that when you bring a magnet close to the Sensor the LED will glow.

Connect the anode of the led to digital pin 6 and the cathode to Gnd.

After connecting the LED upload the code -

void setup() <br>{ 
     pinsInit(); 
} 
  
void loop()  
{ 
    if(isNearMagnet())//if the hall sensor is near the magnet? 
    { 
        turnOnLED(); 
    } 
    else 
    { 
        turnOffLED(); 
    } 
} 
void pinsInit() 
{ 
    pinMode(HALL_SENSOR, INPUT); 
    pinMode(LED,OUTPUT); 
} 
 
/*If the hall sensor is near the magnet whose south pole is facing up, */ 
/*it will return ture, otherwise it will return false.                */ 
boolean isNearMagnet() 
{ 
    int sensorValue = digitalRead(HALL_SENSOR); 
    if(sensorValue == LOW)//if the sensor value is LOW? 
    { 
        return true;//yes,return ture 
    } 
    else 
    { 
        return false;//no,return false 
    } 
} 
void turnOnLED() 
{ 
    digitalWrite(LED,HIGH); 
} 
void turnOffLED() 
{ 
    digitalWrite(LED,LOW); 
}