Jim Belesiu
/
SonarRangeFinderV1
MB7040 Range finder experiment.
main.cpp@2:6daf72c57cee, 2015-01-11 (annotated)
- 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?
User | Revision | Line number | New 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 | } |