Fully integrated working system

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

Committer:
fiachra
Date:
Wed Dec 16 15:05:27 2020 +0000
Revision:
11:68194bd43e0b
Parent:
10:f29ed3675509
Child:
12:730a95b81992
fixed cm printing;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tadhgjones 8:f3ab61374cd0 1 #include "mbed.h"
tadhgjones 8:f3ab61374cd0 2 #include "hcsr04.h"
tadhgjones 8:f3ab61374cd0 3 #include "Speaker.h"
fiachra 10:f29ed3675509 4 #include "uLCD_4DGL.h"
tadhgjones 8:f3ab61374cd0 5
fiachra 10:f29ed3675509 6 HCSR04 distSens(p25,p6);
tadhgjones 8:f3ab61374cd0 7 Serial pc(USBTX, USBRX);
tadhgjones 8:f3ab61374cd0 8 Speaker mySpeaker(p18);
fiachra 10:f29ed3675509 9 uLCD_4DGL uLCD(p9,p10,p11);
fiachra 10:f29ed3675509 10
tadhgjones 8:f3ab61374cd0 11
tadhgjones 8:f3ab61374cd0 12 unsigned int dist;
fiachra 9:d1b00a2a8e25 13
fiachra 9:d1b00a2a8e25 14 float averageDistance();
fiachra 9:d1b00a2a8e25 15 void beeping();
fiachra 9:d1b00a2a8e25 16 float i;
fiachra 9:d1b00a2a8e25 17
tadhgjones 8:f3ab61374cd0 18 int main()
tadhgjones 8:f3ab61374cd0 19 {
fiachra 10:f29ed3675509 20 uLCD.text_width(1); // Normal size
fiachra 10:f29ed3675509 21 uLCD.text_height(1); // Normal size
fiachra 11:68194bd43e0b 22 uLCD.locate(10, 12); // Move cursor
fiachra 10:f29ed3675509 23 uLCD.color(BLUE); // Change text color
fiachra 11:68194bd43e0b 24 uLCD.printf(" Reverse Sensor");
fiachra 10:f29ed3675509 25 uLCD.rectangle(65, 117, 126, 127, 0x0000FF);
tadhgjones 8:f3ab61374cd0 26 while(1) {
fiachra 10:f29ed3675509 27 distSens.start();
fiachra 9:d1b00a2a8e25 28 averageDistance();
fiachra 9:d1b00a2a8e25 29 beeping();
fiachra 11:68194bd43e0b 30 uLCD.filled_rectangle(66, 118, 125, 127, 0x000000);
fiachra 11:68194bd43e0b 31 pc.printf("cm:%d\n",dist );
fiachra 10:f29ed3675509 32 uLCD.text_width(1); // Normal size
fiachra 10:f29ed3675509 33 uLCD.text_height(1); // Normal size
fiachra 10:f29ed3675509 34 uLCD.locate(10, 15); // Move cursor
fiachra 10:f29ed3675509 35 uLCD.color(WHITE); // Change text color
fiachra 10:f29ed3675509 36 uLCD.printf("cm:%1d\n",dist );
fiachra 10:f29ed3675509 37
fiachra 9:d1b00a2a8e25 38 }
fiachra 9:d1b00a2a8e25 39 }
fiachra 9:d1b00a2a8e25 40 float averageDistance() /** Divide the running total by 10 to get the average distance to get more accurate readings on the sensor**/
fiachra 9:d1b00a2a8e25 41 {
fiachra 10:f29ed3675509 42 int a = distSens.get_dist_cm();
fiachra 10:f29ed3675509 43 int b = distSens.get_dist_cm();
fiachra 10:f29ed3675509 44 int c = distSens.get_dist_cm();
fiachra 10:f29ed3675509 45 int d = distSens.get_dist_cm();
fiachra 10:f29ed3675509 46 int e = distSens.get_dist_cm();
fiachra 10:f29ed3675509 47 int f = distSens.get_dist_cm();
fiachra 10:f29ed3675509 48 int g = distSens.get_dist_cm();
fiachra 10:f29ed3675509 49 int h = distSens.get_dist_cm();
fiachra 10:f29ed3675509 50 int i = distSens.get_dist_cm();
fiachra 10:f29ed3675509 51 int j = distSens.get_dist_cm();
tadhgjones 8:f3ab61374cd0 52
fiachra 9:d1b00a2a8e25 53 dist = (a+b+c+d+e+f+g+h+i+j)/10;
fiachra 9:d1b00a2a8e25 54 return dist;
fiachra 9:d1b00a2a8e25 55 }
fiachra 9:d1b00a2a8e25 56 void beeping()
fiachra 9:d1b00a2a8e25 57 {
fiachra 9:d1b00a2a8e25 58 int distance = averageDistance();
fiachra 9:d1b00a2a8e25 59
fiachra 9:d1b00a2a8e25 60 if (distance > 2000) i=0.05; //sensor defaults to 2k+ when dist<~3cm
fiachra 9:d1b00a2a8e25 61 if (distance < 150) i=0.6;
fiachra 9:d1b00a2a8e25 62 if (distance < 100) i=0.55;
fiachra 9:d1b00a2a8e25 63 if (distance < 90) i=0.5;
fiachra 9:d1b00a2a8e25 64 if (distance < 80) i=0.45;
fiachra 9:d1b00a2a8e25 65 if (distance < 70) i=0.4;
fiachra 9:d1b00a2a8e25 66 if (distance < 60) i=0.35;
fiachra 9:d1b00a2a8e25 67 if (distance < 50) i=0.3;
fiachra 9:d1b00a2a8e25 68 if (distance < 40) i=0.25;
fiachra 9:d1b00a2a8e25 69 if (distance < 30) i=0.2;
fiachra 9:d1b00a2a8e25 70 if (distance < 20) i=0.15;
fiachra 9:d1b00a2a8e25 71 if (distance < 10) i=0.1;
fiachra 9:d1b00a2a8e25 72 if (distance < 5) i=0.05;
fiachra 10:f29ed3675509 73 mySpeaker.PlayNote(600, i, 5.0);
fiachra 9:d1b00a2a8e25 74
tadhgjones 8:f3ab61374cd0 75 }