Fully integrated working system
Dependencies: Speaker mbed mbed-rtos 4DGL-uLCD-SE hcsr04
main.cpp
- Committer:
- fiachra
- Date:
- 2020-12-16
- Revision:
- 11:68194bd43e0b
- Parent:
- 10:f29ed3675509
- Child:
- 12:730a95b81992
File content as of revision 11:68194bd43e0b:
#include "mbed.h" #include "hcsr04.h" #include "Speaker.h" #include "uLCD_4DGL.h" HCSR04 distSens(p25,p6); Serial pc(USBTX, USBRX); Speaker mySpeaker(p18); uLCD_4DGL uLCD(p9,p10,p11); unsigned int dist; float averageDistance(); void beeping(); float i; int main() { uLCD.text_width(1); // Normal size uLCD.text_height(1); // Normal size uLCD.locate(10, 12); // Move cursor uLCD.color(BLUE); // Change text color uLCD.printf(" Reverse Sensor"); uLCD.rectangle(65, 117, 126, 127, 0x0000FF); while(1) { distSens.start(); averageDistance(); beeping(); uLCD.filled_rectangle(66, 118, 125, 127, 0x000000); pc.printf("cm:%d\n",dist ); uLCD.text_width(1); // Normal size uLCD.text_height(1); // Normal size uLCD.locate(10, 15); // Move cursor uLCD.color(WHITE); // Change text color uLCD.printf("cm:%1d\n",dist ); } } float averageDistance() /** Divide the running total by 10 to get the average distance to get more accurate readings on the sensor**/ { int a = distSens.get_dist_cm(); int b = distSens.get_dist_cm(); int c = distSens.get_dist_cm(); int d = distSens.get_dist_cm(); int e = distSens.get_dist_cm(); int f = distSens.get_dist_cm(); int g = distSens.get_dist_cm(); int h = distSens.get_dist_cm(); int i = distSens.get_dist_cm(); int j = distSens.get_dist_cm(); dist = (a+b+c+d+e+f+g+h+i+j)/10; return dist; } void beeping() { int distance = averageDistance(); if (distance > 2000) i=0.05; //sensor defaults to 2k+ when dist<~3cm if (distance < 150) i=0.6; if (distance < 100) i=0.55; if (distance < 90) i=0.5; if (distance < 80) i=0.45; if (distance < 70) i=0.4; if (distance < 60) i=0.35; if (distance < 50) i=0.3; if (distance < 40) i=0.25; if (distance < 30) i=0.2; if (distance < 20) i=0.15; if (distance < 10) i=0.1; if (distance < 5) i=0.05; mySpeaker.PlayNote(600, i, 5.0); }