Introduction: Tutorial to Interface HMC5883L Compass Sensor With Arduino
HMC5883L is a 3-axis digital compass used for two general purposes: to measure the magnetization of a magnetic material like a ferromagnet, or to measure the strength and, in some cases, the direction of the magnetic field at a point in space. Communication with the HMC5883L is simple and all done through an I2C interface. There is an on board regulator. The breakout board includes the HMC5883L sensor and all filtering capacitors. The power and 2-wire interface pins are all broken out to a 0.1" pitch header. Uses famous HMC5883L magnetometer chip. Supports 3.0V to 5.0V IO levels on I2C SCL and SDA pins.
- Power supply :3V - 5V
- IO Voltage Level: 3V - 5V
- Communication: Standard IIC communication protocol
- Module Dimensions: 14.35 mm (L) x 13.16 mm (W) x 3.40 mm (H)
- PCB thickness: 1.60 mm
- Measuring range: ± 1.3-8 Gauss
Step 1: Materials Preparation
In this tutorial, you will need :
1. Arduino Uno Board and USB Cable.
2. HMC 5883L Compass Sensor
3. Jumper Wires
4. LCD 16X2
6. 10K Potentiometer
7. Arduino IDE Software
Step 2: Pin Description
VCC : Power supply
GND : GND power
SCL: I2C Clock Input
SDA : I2C Data IO
DRDY: Data Ready Output
Step 3: Pin Connection
Connect HMC5883L to Arduino Uno Board as following :
- VCC to +5V
- GND to GND
- SCL tO A5
- SDA to A4
Connect LCD to Arduino Uno Board as following :
- VSS to +5V
- VDD to GND
- RS to 12
- RW to GND
- E to 11
- D4 to 5
- D5 to 4
- D6 to 3
- D7 to 2
- A/VSS to +5V
- K/VDD to GND
Connect 10K Potentiometer to LCD as following (refer image for potentiometer pinout) :
- GND to GND
- Data to v0
- VCC to +5V
Step 4: Connect Arduino to Computer
After u have complete your circuit, connect your Arduino Uno Board to your computer via USB Cable. You can see your LCD is on.
Step 5: Sample Source Code
You may download this sample source code and open it on your Arduino IDE. Choose the correct board and port. Then, upload your Code into your Arduino Uno Board.
Step 6: Library
You have to download these libraries before uploading the sample source code into your Arduino IDE to allow Arduino to communicate with LCD and HMC5883L. Download the ZIP file below > Open Zip File > Extract to your Arduino Uno Library folder. Refer the image above for your references.
Step 7: Corresponding Output
As illustrated, twisting or turning the device will provide the corresponding outputs.
Step 8: Result : Serial Monitor
i. when device rotate around it's X-axis, X-axis remain the same while the other two axis changed.
ii. when device rotate around it's Y-axis, Y-axis remain the same while the other two axis changed.
iii. when device rotate around it's Z-axis, Z-axis remain the same while the other two axis changed.
Step 9: Video
This video shows HMC5883L Compass Module corresponding output when interfaced with Arduino Uno.