First experiment with mbed

Dependencies:   mbed

Fork of HelloWorld by Simon Ford

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 // Ultra Sonice Range Finder
00002 // Experiement #1
00003 // Belesiu
00004 // 2014.12.26
00005 
00006 #include "mbed.h"
00007 
00008 DigitalOut myled(LED1);
00009 
00010 I2C rangefinder(p9, p10);   // sda, sc1
00011 Serial pc(USBTX, USBRX);    // tx, rx
00012 
00013 const int addr = 0xE0;
00014 char config_r[2];
00015 char range_read[2];
00016 float range;
00017 
00018 int main()
00019 {
00020     int x = 0;
00021 
00022     while(1) {
00023 
00024         // Test serial port
00025         myled = 1;
00026         wait(0.2);
00027         myled = 0;
00028         wait(0.2);
00029         pc.printf("Hello Jim! - %d\n", x++);
00030 
00031         // For MB7040
00032 
00033         config_r[0] = 0x00; // set pointer reg to ‘cmd register'
00034         config_r[1] = 0x51; // config data byte1
00035         rangefinder.write(addr, config_r, 2);
00036         wait(0.07);
00037 
00038         config_r[0] = 0x02; //set pointer reg to 'data register'
00039         rangefinder.write(addr, config_r, 1);   //send to pointer 'read range'
00040         rangefinder.read(addr, range_read, 2);  //read the two-byte range data
00041         range = ((range_read[0] << 8) + range_read[1]);
00042 
00043         pc.printf("Range = %.2f cm\n\r", range); //print range on screen
00044         wait(0.05);
00045 
00046     }
00047 }