Fully integrated working system

Dependencies:   Speaker mbed mbed-rtos 4DGL-uLCD-SE hcsr04

Revision:
9:d1b00a2a8e25
Parent:
8:f3ab61374cd0
Child:
10:f29ed3675509
--- a/main.cpp	Wed Dec 16 10:38:23 2020 +0000
+++ b/main.cpp	Wed Dec 16 12:11:32 2020 +0000
@@ -7,17 +7,61 @@
 Speaker mySpeaker(p18);
 
 unsigned int dist;
+
+float averageDistance();
+void beeping();
+float i;
+
 int main()
 {
  
     while(1) {
         usensor.start();
-        wait_ms(50); 
-        dist=usensor.get_dist_cm();
         
-        mySpeaker.PlayNote(329.63, 0.5, 1.0);
+        averageDistance();
         
+        beeping();
         pc.printf("cm:%ld\n",dist );
+        wait_ms(50); 
+    }
+}
+float averageDistance() /** Divide the running total by 10 to get the average distance to get more accurate readings on the sensor**/
+{
+        int a = usensor.get_dist_cm();
+        int b = usensor.get_dist_cm();
+        int c = usensor.get_dist_cm();
+        int d = usensor.get_dist_cm();
+        int e = usensor.get_dist_cm();
+        int f = usensor.get_dist_cm();
+        int g = usensor.get_dist_cm();
+        int h = usensor.get_dist_cm();
+        int i = usensor.get_dist_cm();
+        int j = usensor.get_dist_cm();
  
-    }
+        dist  = (a+b+c+d+e+f+g+h+i+j)/10;
+        return dist;
+}
+void beeping()
+/*
+@Brief Function to create the effect of varying beeping sounds depending on how close the sensor is to an object interspersed with
+the led changing color depending on the distance
+ */
+{
+    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(329.63, i, 1.0);
+    
 }
\ No newline at end of file