Code to run 2x HC-SR04 Ultrasonic sensors
Dependencies: mbed HC_SR04_Ultrasonic_Library
main.cpp@25:2e7a847a4432, 2020-02-17 (annotated)
- Committer:
- rwhite3
- Date:
- Mon Feb 17 12:03:20 2020 +0000
- Revision:
- 25:2e7a847a4432
- Parent:
- 24:7f14b70fc9ef
2_Sensor_Ultrasonic
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dan | 0:7dec7e9ac085 | 1 | #include "mbed.h" |
rwhite3 | 25:2e7a847a4432 | 2 | #include "ultrasonic.h" |
dan | 0:7dec7e9ac085 | 3 | |
rwhite3 | 25:2e7a847a4432 | 4 | DigitalOut RED(LED1); |
rwhite3 | 25:2e7a847a4432 | 5 | DigitalOut GREEN(LED2); |
rwhite3 | 25:2e7a847a4432 | 6 | DigitalOut BLUE(LED3); |
rwhite3 | 25:2e7a847a4432 | 7 | |
rwhite3 | 25:2e7a847a4432 | 8 | void dist1(int distance1_mm) |
dan | 0:7dec7e9ac085 | 9 | |
rwhite3 | 25:2e7a847a4432 | 10 | { |
rwhite3 | 25:2e7a847a4432 | 11 | RED=1; |
rwhite3 | 25:2e7a847a4432 | 12 | GREEN=1; |
rwhite3 | 25:2e7a847a4432 | 13 | BLUE=1; |
rwhite3 | 25:2e7a847a4432 | 14 | //put code here to happen when the distance is changed |
rwhite3 | 25:2e7a847a4432 | 15 | int dis1_cm; |
rwhite3 | 25:2e7a847a4432 | 16 | dis1_cm=distance1_mm/10; |
rwhite3 | 25:2e7a847a4432 | 17 | printf("Distance of left sensor is %dcm\r\n", dis1_cm); |
rwhite3 | 25:2e7a847a4432 | 18 | if (dis1_cm<100) { |
rwhite3 | 25:2e7a847a4432 | 19 | RED=0; |
rwhite3 | 25:2e7a847a4432 | 20 | } else (RED=1); |
rwhite3 | 25:2e7a847a4432 | 21 | } |
rwhite3 | 25:2e7a847a4432 | 22 | void dist2(int distance2_mm) |
rwhite3 | 25:2e7a847a4432 | 23 | { |
rwhite3 | 25:2e7a847a4432 | 24 | RED=1; |
rwhite3 | 25:2e7a847a4432 | 25 | GREEN=1; |
rwhite3 | 25:2e7a847a4432 | 26 | BLUE=1; |
rwhite3 | 25:2e7a847a4432 | 27 | int dis2_cm; |
rwhite3 | 25:2e7a847a4432 | 28 | dis2_cm=distance2_mm/10; |
rwhite3 | 25:2e7a847a4432 | 29 | printf("Distance of right sensor is %dcm\r\n", dis2_cm); |
rwhite3 | 25:2e7a847a4432 | 30 | if (dis2_cm<100) { |
rwhite3 | 25:2e7a847a4432 | 31 | GREEN=0; |
rwhite3 | 25:2e7a847a4432 | 32 | } else (GREEN=1); |
rwhite3 | 25:2e7a847a4432 | 33 | } |
rwhite3 | 25:2e7a847a4432 | 34 | ultrasonic mu1(D8, D9, .1, 1, &dist1); //Set the trigger pin to D8 and the echo pin to D9 |
rwhite3 | 25:2e7a847a4432 | 35 | ultrasonic mu2(D6, D7, .1, 1, &dist2); //have updates every .1 seconds and a timeout after 1 |
rwhite3 | 25:2e7a847a4432 | 36 | //second, and call dist when the distance changes |
rwhite3 | 25:2e7a847a4432 | 37 | |
rwhite3 | 25:2e7a847a4432 | 38 | int main() |
rwhite3 | 25:2e7a847a4432 | 39 | { |
rwhite3 | 25:2e7a847a4432 | 40 | mu1.startUpdates(); //start mesuring the distance for each sensor |
rwhite3 | 25:2e7a847a4432 | 41 | mu2.startUpdates(); |
rwhite3 | 25:2e7a847a4432 | 42 | |
dan | 0:7dec7e9ac085 | 43 | while(1) { |
rwhite3 | 25:2e7a847a4432 | 44 | |
rwhite3 | 25:2e7a847a4432 | 45 | mu1.checkDistance(); //call checkDistance() as much as possible, as this is where |
rwhite3 | 25:2e7a847a4432 | 46 | mu2.checkDistance(); //the class checks if dist needs to be called. |
stevep | 4:81cea7a352b0 | 47 | } |
dan | 0:7dec7e9ac085 | 48 | } |
rwhite3 | 25:2e7a847a4432 | 49 |