A program that demonstrates the development of library, using as an example an ultrasonic distance sensor HC-SR04.

Dependencies:   mbed HCSR04 AutomationElements

Committer:
tbjazic
Date:
Mon Dec 07 10:44:07 2015 +0000
Revision:
4:052ac3f5c938
Parent:
3:3297ea6e3ae1
Child:
5:889566fb3a85
Child:
6:bca0839e8295
PT1 filter added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tbjazic 0:ebee649c5b1b 1 #include "mbed.h"
tbjazic 2:f86b1e3609b3 2 #include "HCSR04.h"
tbjazic 4:052ac3f5c938 3 #include "AutomationElements.h"
tbjazic 0:ebee649c5b1b 4
tbjazic 3:3297ea6e3ae1 5 Serial pc(USBTX, USBRX);
tbjazic 4:052ac3f5c938 6 HCSR04 sensor(p5, p7);
tbjazic 4:052ac3f5c938 7 float sampleTime = 0.1;
tbjazic 4:052ac3f5c938 8 PT1 filter(1, 2, sampleTime);
tbjazic 4:052ac3f5c938 9 Ticker ticker;
tbjazic 4:052ac3f5c938 10 float distance;
tbjazic 4:052ac3f5c938 11 float filteredDistance;
tbjazic 4:052ac3f5c938 12 DigitalOut led1(LED1);
tbjazic 4:052ac3f5c938 13
tbjazic 4:052ac3f5c938 14 void calc() {
tbjazic 4:052ac3f5c938 15 led1 = 1;
tbjazic 4:052ac3f5c938 16 distance = sensor.getDistance_mm();
tbjazic 4:052ac3f5c938 17 filter.in(distance);
tbjazic 4:052ac3f5c938 18 filteredDistance = filter.out();
tbjazic 4:052ac3f5c938 19 pc.printf("%7.1f mm %7.1f mm \r", distance, filteredDistance);
tbjazic 4:052ac3f5c938 20 led1 = 0;
tbjazic 4:052ac3f5c938 21 }
tbjazic 0:ebee649c5b1b 22
tbjazic 0:ebee649c5b1b 23 int main() {
tbjazic 3:3297ea6e3ae1 24 sensor.setRanges(10, 110);
tbjazic 4:052ac3f5c938 25 pc.printf("Minimum sensor range = %g cm\n\rMaximum sensor range = %g cm\n\r", sensor.getMinRange(), sensor.getMaxRange());
tbjazic 4:052ac3f5c938 26 pc.printf("Sensor: Filtered:\n\r");
tbjazic 4:052ac3f5c938 27 ticker.attach(&calc, sampleTime);
tbjazic 4:052ac3f5c938 28
tbjazic 0:ebee649c5b1b 29 while(1) {
tbjazic 3:3297ea6e3ae1 30 wait_ms(500);
tbjazic 0:ebee649c5b1b 31 }
tbjazic 0:ebee649c5b1b 32 }