summaryrefslogtreecommitdiff
path: root/arduino_libs_1_0/I2C/examples
diff options
context:
space:
mode:
Diffstat (limited to 'arduino_libs_1_0/I2C/examples')
-rw-r--r--arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde70
1 files changed, 70 insertions, 0 deletions
diff --git a/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde b/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde
new file mode 100644
index 0000000..806e749
--- /dev/null
+++ b/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde
@@ -0,0 +1,70 @@
+/*******************************************
+ Sample sketch that configures an HMC5883L 3 axis
+ magnetometer to continuous mode and reads back
+ the three axis of data.
+ Code compiles to a size of 1500 bytes
+ Equivalent Wire Library code compiles to 2032 bytes
+ *******************************************/
+
+#include <I2C.h>
+
+#define HMC5883L 0x1E
+
+int x = 0;
+int y = 0;
+int z = 0;
+
+
+void setup()
+{
+ I2c.begin();
+ I2c.write(HMC5883L,0x02,0x00); //configure device for continuous mode
+}
+
+void loop()
+{
+ I2c.read(HMC5883L,0x03,6); //read 6 bytes (x,y,z) from the device
+ x = I2c.receive() << 8;
+ x |= I2c.receive();
+ y = I2c.receive() << 8;
+ y |= I2c.receive();
+ z = I2c.receive() << 8;
+ z |= I2c.receive();
+}
+
+
+/* Wire library equivalent would be this
+
+//#include <Wire.h>
+
+#define HMC5883L 0x1E
+
+int x = 0;
+int y = 0;
+int z = 0;
+
+
+void setup()
+{
+ Wire.begin();
+ Wire.beginTransmission(HMC5883L);
+ Wire.send(0x02);
+ Wire.send(0x00);
+ Wire.endTransmission();
+}
+
+void loop()
+{
+ Wire.beginTransmission(HMC5883L);
+ Wire.send(0x03);
+ Wire.endTransmission();
+ Wire.requestFrom(HMC5883L,6);
+ x = Wire.receive() << 8;
+ x |= Wire.receive();
+ y = Wire.receive() << 8;
+ y |= Wire.receive();
+ z = Wire.receive() << 8;
+ z |= Wire.receive();
+}
+
+********************************************/