aa

Dependencies:   mbed

Committer:
akudohune
Date:
Wed Feb 27 02:33:02 2013 +0000
Revision:
0:e455520e1583
aaa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akudohune 0:e455520e1583 1 #include "mbed.h"
akudohune 0:e455520e1583 2
akudohune 0:e455520e1583 3 I2C i2c(p9, p10); // sda, scl
akudohune 0:e455520e1583 4 Serial pc(USBTX, USBRX); // tx, rx
akudohune 0:e455520e1583 5
akudohune 0:e455520e1583 6 #define ADDR 0x14 // define the I2C Address
akudohune 0:e455520e1583 7
akudohune 0:e455520e1583 8 int main() {
akudohune 0:e455520e1583 9 char cmd[4];
akudohune 0:e455520e1583 10 while(1) {
akudohune 0:e455520e1583 11 cmd[0] = 0x0; // pointer to command register
akudohune 0:e455520e1583 12 cmd[1] = 0x51; // Start ranging, results in cm
akudohune 0:e455520e1583 13 i2c.write(ADDR, cmd, 2); // Send command string
akudohune 0:e455520e1583 14
akudohune 0:e455520e1583 15 wait(0.07); // Could also poll, 65ms is typical
akudohune 0:e455520e1583 16
akudohune 0:e455520e1583 17 // Set pointer to location 2 (first echo)
akudohune 0:e455520e1583 18 cmd[0] = 0x2;
akudohune 0:e455520e1583 19 i2c.write(ADDR, cmd, 1);
akudohune 0:e455520e1583 20 i2c.read(ADDR, cmd, 2); // read the two-byte echo result
akudohune 0:e455520e1583 21
akudohune 0:e455520e1583 22 // print the ranging data to the screen
akudohune 0:e455520e1583 23 float echo = 0.01 * ((cmd[0] << 8) + cmd[1]);
akudohune 0:e455520e1583 24 pc.printf("Range = %.2f\n", echo);
akudohune 0:e455520e1583 25 wait(0.1);
akudohune 0:e455520e1583 26 }
akudohune 0:e455520e1583 27 }