Fully integrated working system

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

Committer:
fiachra
Date:
Wed Dec 16 17:20:46 2020 +0000
Revision:
12:730a95b81992
Parent:
11:68194bd43e0b
Child:
13:a3cdbad9daf4
lib;

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"
fiachra 12:730a95b81992 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 unsigned int dist;
fiachra 9:d1b00a2a8e25 12 float averageDistance();
fiachra 9:d1b00a2a8e25 13 void beeping();
fiachra 9:d1b00a2a8e25 14 float i;
fiachra 9:d1b00a2a8e25 15
tadhgjones 8:f3ab61374cd0 16 int main()
tadhgjones 8:f3ab61374cd0 17 {
fiachra 12:730a95b81992 18 uLCD.text_width(1);
fiachra 12:730a95b81992 19 uLCD.text_height(1);
fiachra 12:730a95b81992 20 uLCD.locate(10, 12);
fiachra 12:730a95b81992 21 uLCD.color(BLUE);
fiachra 11:68194bd43e0b 22 uLCD.printf(" Reverse Sensor");
fiachra 10:f29ed3675509 23 uLCD.rectangle(65, 117, 126, 127, 0x0000FF);
tadhgjones 8:f3ab61374cd0 24 while(1) {
fiachra 10:f29ed3675509 25 distSens.start();
fiachra 9:d1b00a2a8e25 26 averageDistance();
fiachra 9:d1b00a2a8e25 27 beeping();
fiachra 11:68194bd43e0b 28 uLCD.filled_rectangle(66, 118, 125, 127, 0x000000);
fiachra 11:68194bd43e0b 29 pc.printf("cm:%d\n",dist );
fiachra 12:730a95b81992 30 uLCD.text_width(1);
fiachra 12:730a95b81992 31 uLCD.text_height(1);
fiachra 12:730a95b81992 32 uLCD.locate(10, 15);
fiachra 12:730a95b81992 33 uLCD.color(WHITE);
fiachra 10:f29ed3675509 34 uLCD.printf("cm:%1d\n",dist );
fiachra 9:d1b00a2a8e25 35 }
fiachra 9:d1b00a2a8e25 36 }
fiachra 12:730a95b81992 37 float averageDistance()
fiachra 9:d1b00a2a8e25 38 {
fiachra 10:f29ed3675509 39 int a = distSens.get_dist_cm();
fiachra 10:f29ed3675509 40 int b = distSens.get_dist_cm();
fiachra 10:f29ed3675509 41 int c = distSens.get_dist_cm();
fiachra 10:f29ed3675509 42 int d = distSens.get_dist_cm();
fiachra 10:f29ed3675509 43 int e = distSens.get_dist_cm();
fiachra 10:f29ed3675509 44 int f = distSens.get_dist_cm();
fiachra 10:f29ed3675509 45 int g = distSens.get_dist_cm();
fiachra 10:f29ed3675509 46 int h = distSens.get_dist_cm();
fiachra 10:f29ed3675509 47 int i = distSens.get_dist_cm();
fiachra 10:f29ed3675509 48 int j = distSens.get_dist_cm();
tadhgjones 8:f3ab61374cd0 49
fiachra 9:d1b00a2a8e25 50 dist = (a+b+c+d+e+f+g+h+i+j)/10;
fiachra 9:d1b00a2a8e25 51 return dist;
fiachra 9:d1b00a2a8e25 52 }
fiachra 9:d1b00a2a8e25 53 void beeping()
fiachra 9:d1b00a2a8e25 54 {
fiachra 9:d1b00a2a8e25 55 int distance = averageDistance();
fiachra 12:730a95b81992 56 //sensor defaults to 2k+ when dist<~3cm
fiachra 12:730a95b81992 57 if (distance > 2000) i=0.05;
fiachra 9:d1b00a2a8e25 58 if (distance < 150) i=0.6;
fiachra 9:d1b00a2a8e25 59 if (distance < 100) i=0.55;
fiachra 9:d1b00a2a8e25 60 if (distance < 90) i=0.5;
fiachra 9:d1b00a2a8e25 61 if (distance < 80) i=0.45;
fiachra 9:d1b00a2a8e25 62 if (distance < 70) i=0.4;
fiachra 9:d1b00a2a8e25 63 if (distance < 60) i=0.35;
fiachra 9:d1b00a2a8e25 64 if (distance < 50) i=0.3;
fiachra 9:d1b00a2a8e25 65 if (distance < 40) i=0.25;
fiachra 9:d1b00a2a8e25 66 if (distance < 30) i=0.2;
fiachra 9:d1b00a2a8e25 67 if (distance < 20) i=0.15;
fiachra 9:d1b00a2a8e25 68 if (distance < 10) i=0.1;
fiachra 9:d1b00a2a8e25 69 if (distance < 5) i=0.05;
fiachra 12:730a95b81992 70 mySpeaker.PlayNote(600, i, 5.0);
tadhgjones 8:f3ab61374cd0 71 }