Introduction: 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...
Step 1: 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.
Step 2: 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.
Step 3: 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); }