MB7040 Range finder experiment.

Dependencies:   mbed

Committer:
Belesiu
Date:
Sun Jan 11 23:10:16 2015 +0000
Revision:
2:6daf72c57cee
Parent:
1:0cf1f2254f10
Test program to check DAC output given a fixed input range.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Belesiu 0:28fb80eb93ca 1 // Ultra Sonice Range Finder
Belesiu 0:28fb80eb93ca 2 // Experiement #1
Belesiu 0:28fb80eb93ca 3 // Belesiu
Belesiu 0:28fb80eb93ca 4 // 2014.12.26
Belesiu 0:28fb80eb93ca 5
Belesiu 0:28fb80eb93ca 6 #include "mbed.h"
Belesiu 0:28fb80eb93ca 7
Belesiu 0:28fb80eb93ca 8 DigitalOut myled(LED1);
Belesiu 0:28fb80eb93ca 9
Belesiu 0:28fb80eb93ca 10 I2C rangefinder(p9, p10); // sda, sc1
Belesiu 0:28fb80eb93ca 11 Serial pc(USBTX, USBRX); // tx, rx
Belesiu 0:28fb80eb93ca 12
Belesiu 0:28fb80eb93ca 13 const int addr = 0xE0;
Belesiu 0:28fb80eb93ca 14 char config_r[2];
Belesiu 0:28fb80eb93ca 15 char range_read[2];
Belesiu 0:28fb80eb93ca 16 float range;
Belesiu 0:28fb80eb93ca 17
Belesiu 2:6daf72c57cee 18 #define N 8
Belesiu 2:6daf72c57cee 19 float test_range[N] = {26.0, 100.0, 200.0, 300.0, 400.0,500.0, 600.0, 765.0};
Belesiu 2:6daf72c57cee 20
Belesiu 1:0cf1f2254f10 21 AnalogOut signal(p18);
Belesiu 1:0cf1f2254f10 22
Belesiu 0:28fb80eb93ca 23 int main()
Belesiu 0:28fb80eb93ca 24 {
Belesiu 0:28fb80eb93ca 25 int x = 0;
Belesiu 2:6daf72c57cee 26 int i = 0;
Belesiu 0:28fb80eb93ca 27
Belesiu 0:28fb80eb93ca 28 while(1) {
Belesiu 0:28fb80eb93ca 29
Belesiu 0:28fb80eb93ca 30 // Test serial port
Belesiu 0:28fb80eb93ca 31 myled = 1;
Belesiu 0:28fb80eb93ca 32 wait(0.2);
Belesiu 0:28fb80eb93ca 33 myled = 0;
Belesiu 0:28fb80eb93ca 34 wait(0.2);
Belesiu 2:6daf72c57cee 35 // pc.printf("Canned test program! - %d: ", x++);
Belesiu 0:28fb80eb93ca 36
Belesiu 2:6daf72c57cee 37 range = test_range[i];
Belesiu 0:28fb80eb93ca 38
Belesiu 2:6daf72c57cee 39 pc.printf("%d Range = %.2f cm", x++, range); //print range on screen
Belesiu 0:28fb80eb93ca 40 wait(0.05);
Belesiu 1:0cf1f2254f10 41
Belesiu 1:0cf1f2254f10 42 // Output voltage proportional to distance.
Belesiu 1:0cf1f2254f10 43 // The output value for the variable signal is 0 to 1.0.
Belesiu 1:0cf1f2254f10 44
Belesiu 1:0cf1f2254f10 45 signal = range / 765.0;
Belesiu 2:6daf72c57cee 46
Belesiu 2:6daf72c57cee 47 pc.printf(" Signal[%d] = %.2f \n\r", i, range / 765.0);
Belesiu 2:6daf72c57cee 48 wait(2.0);
Belesiu 2:6daf72c57cee 49 if(++i == N) i = 0;
Belesiu 0:28fb80eb93ca 50
Belesiu 0:28fb80eb93ca 51 }
Belesiu 0:28fb80eb93ca 52 }