Grove Hall Sensor - Arduino
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
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
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
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); }