Renosi Momoh / Mbed 2 deprecated ParkingSENSOR

Dependencies:   N5110 SRF02 buzzer mbed

Committer:
Reniboy
Date:
Thu May 05 00:29:11 2016 +0000
Revision:
0:e1ae1b9889a3
Child:
1:775f6e8071a2
Version 1.0; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reniboy 0:e1ae1b9889a3 1 /**
Reniboy 0:e1ae1b9889a3 2 @Brief Program implementation
Reniboy 0:e1ae1b9889a3 3 @file main.cpp
Reniboy 0:e1ae1b9889a3 4 **/
Reniboy 0:e1ae1b9889a3 5
Reniboy 0:e1ae1b9889a3 6
Reniboy 0:e1ae1b9889a3 7 #include "main.h"
Reniboy 0:e1ae1b9889a3 8
Reniboy 0:e1ae1b9889a3 9 int main()
Reniboy 0:e1ae1b9889a3 10 {
Reniboy 0:e1ae1b9889a3 11 lcd.init();
Reniboy 0:e1ae1b9889a3 12 lcd.setBrightness(1.0); //set backlight to full
Reniboy 0:e1ae1b9889a3 13 lcd.printString("Renosi Momoh's",0,1); /** Setting the Introduction text to the screen when the mbed is turned on **/
Reniboy 0:e1ae1b9889a3 14 lcd.printString("Parking Sensor",0,2);
Reniboy 0:e1ae1b9889a3 15 lcd.printString("Project",16,3);
Reniboy 0:e1ae1b9889a3 16 lcd.printString("LEEDS UNIV.",0,5);
Reniboy 0:e1ae1b9889a3 17 lcd.refresh();
Reniboy 0:e1ae1b9889a3 18 introTune();
Reniboy 0:e1ae1b9889a3 19 wait(3);
Reniboy 0:e1ae1b9889a3 20 lcd.clear();
Reniboy 0:e1ae1b9889a3 21 lcd.refresh();
Reniboy 0:e1ae1b9889a3 22 r_led = 1;
Reniboy 0:e1ae1b9889a3 23
Reniboy 0:e1ae1b9889a3 24
Reniboy 0:e1ae1b9889a3 25 //ticker.attach(&timer2_isr,0.5);
Reniboy 0:e1ae1b9889a3 26 //ticker.attach(&timer1_isr,1);
Reniboy 0:e1ae1b9889a3 27 //flipper.attach(&active,0.5); //attach a timer to call this function periodically because power.
Reniboy 0:e1ae1b9889a3 28 button.mode(PullNone);
Reniboy 0:e1ae1b9889a3 29 button.fall(&button_isr);
Reniboy 0:e1ae1b9889a3 30 sw3.mode(PullNone);
Reniboy 0:e1ae1b9889a3 31 sw3.fall(&sw3_isr);
Reniboy 0:e1ae1b9889a3 32 mainProg();
Reniboy 0:e1ae1b9889a3 33 }
Reniboy 0:e1ae1b9889a3 34
Reniboy 0:e1ae1b9889a3 35
Reniboy 0:e1ae1b9889a3 36 void mainProg()
Reniboy 0:e1ae1b9889a3 37 {
Reniboy 0:e1ae1b9889a3 38 button.mode(PullNone);
Reniboy 0:e1ae1b9889a3 39 button.rise(&button_isr);
Reniboy 0:e1ae1b9889a3 40
Reniboy 0:e1ae1b9889a3 41 while(1) {
Reniboy 0:e1ae1b9889a3 42 float ain = pot.read();
Reniboy 0:e1ae1b9889a3 43 ain = pot.read();
Reniboy 0:e1ae1b9889a3 44 if (ain < 0.3 ) {
Reniboy 0:e1ae1b9889a3 45 classicMode(); //refresh the lcd display to show classic mode selection as the pot is changed
Reniboy 0:e1ae1b9889a3 46 if (g_button_flag) {
Reniboy 0:e1ae1b9889a3 47 g_button_flag = 0;
Reniboy 0:e1ae1b9889a3 48 buzzer.beep(1700,0.2);//make sound when button is pressed
Reniboy 0:e1ae1b9889a3 49 active();
Reniboy 0:e1ae1b9889a3 50 beeping();
Reniboy 0:e1ae1b9889a3 51 }
Reniboy 0:e1ae1b9889a3 52 sleep();
Reniboy 0:e1ae1b9889a3 53 }
Reniboy 0:e1ae1b9889a3 54
Reniboy 0:e1ae1b9889a3 55 if (ain < 0.7 && ain > 0.3){
Reniboy 0:e1ae1b9889a3 56 radarMode();
Reniboy 0:e1ae1b9889a3 57 if (g_button_flag) {
Reniboy 0:e1ae1b9889a3 58 g_button_flag = 0;
Reniboy 0:e1ae1b9889a3 59 buzzer.beep(1700,0.2); //make sound when selection is chosen
Reniboy 0:e1ae1b9889a3 60 radar();
Reniboy 0:e1ae1b9889a3 61 beeping();
Reniboy 0:e1ae1b9889a3 62
Reniboy 0:e1ae1b9889a3 63 }
Reniboy 0:e1ae1b9889a3 64 sleep();
Reniboy 0:e1ae1b9889a3 65 }
Reniboy 0:e1ae1b9889a3 66 if (ain > 0.7){
Reniboy 0:e1ae1b9889a3 67 classicMode1();
Reniboy 0:e1ae1b9889a3 68 if (g_button_flag) {
Reniboy 0:e1ae1b9889a3 69 g_button_flag = 0;
Reniboy 0:e1ae1b9889a3 70 buzzer.beep(1700,0.2); //make sound when selection is chosen
Reniboy 0:e1ae1b9889a3 71 sweepSpeed();
Reniboy 0:e1ae1b9889a3 72 beeping();
Reniboy 0:e1ae1b9889a3 73 }
Reniboy 0:e1ae1b9889a3 74
Reniboy 0:e1ae1b9889a3 75 sleep();
Reniboy 0:e1ae1b9889a3 76 }
Reniboy 0:e1ae1b9889a3 77 }
Reniboy 0:e1ae1b9889a3 78
Reniboy 0:e1ae1b9889a3 79
Reniboy 0:e1ae1b9889a3 80
Reniboy 0:e1ae1b9889a3 81 }
Reniboy 0:e1ae1b9889a3 82 float averageDistance() /** Divide the running total by 10 to get the average distance to get more accurate readings on the sensor**/
Reniboy 0:e1ae1b9889a3 83 {
Reniboy 0:e1ae1b9889a3 84 int a = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 85 int b = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 86 int c = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 87 int d = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 88 int e = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 89 int f = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 90 int g = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 91 int h = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 92 int i = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 93 int j = sensor.getDistanceCm();
Reniboy 0:e1ae1b9889a3 94
Reniboy 0:e1ae1b9889a3 95 distance = (a+b+c+d+e+f+g+h+i+j)/10;
Reniboy 0:e1ae1b9889a3 96 return distance;
Reniboy 0:e1ae1b9889a3 97 }
Reniboy 0:e1ae1b9889a3 98 float averageDistanceIn() /**Converting the distance from cm into inches **/
Reniboy 0:e1ae1b9889a3 99 {
Reniboy 0:e1ae1b9889a3 100 distanceIn = distance*(0.394);
Reniboy 0:e1ae1b9889a3 101 return distanceIn;
Reniboy 0:e1ae1b9889a3 102 }
Reniboy 0:e1ae1b9889a3 103
Reniboy 0:e1ae1b9889a3 104
Reniboy 0:e1ae1b9889a3 105
Reniboy 0:e1ae1b9889a3 106
Reniboy 0:e1ae1b9889a3 107 void beeping()
Reniboy 0:e1ae1b9889a3 108 /*
Reniboy 0:e1ae1b9889a3 109 @Brief Function to create the effect of varying beeping sounds depending on how close the sensor is to an object interspersed with
Reniboy 0:e1ae1b9889a3 110 the led changing color depending on the distance
Reniboy 0:e1ae1b9889a3 111 */
Reniboy 0:e1ae1b9889a3 112 {
Reniboy 0:e1ae1b9889a3 113
Reniboy 0:e1ae1b9889a3 114 if (distance > 250.0) {
Reniboy 0:e1ae1b9889a3 115 i = 1.4;
Reniboy 0:e1ae1b9889a3 116 r_led = 1;
Reniboy 0:e1ae1b9889a3 117 }
Reniboy 0:e1ae1b9889a3 118 if (distance > 250.0) {
Reniboy 0:e1ae1b9889a3 119 i = 1.2;
Reniboy 0:e1ae1b9889a3 120 r_led = 1;
Reniboy 0:e1ae1b9889a3 121 }
Reniboy 0:e1ae1b9889a3 122 if (distance > 200.0) {
Reniboy 0:e1ae1b9889a3 123 i = 1;
Reniboy 0:e1ae1b9889a3 124 r_led = 1;
Reniboy 0:e1ae1b9889a3 125
Reniboy 0:e1ae1b9889a3 126 }
Reniboy 0:e1ae1b9889a3 127 if (distance > 150) {
Reniboy 0:e1ae1b9889a3 128 i = 0.7;
Reniboy 0:e1ae1b9889a3 129 r_led = 1; //Allows the Led to change color depending on sensor distances
Reniboy 0:e1ae1b9889a3 130
Reniboy 0:e1ae1b9889a3 131 }
Reniboy 0:e1ae1b9889a3 132 if (distance > 100) {
Reniboy 0:e1ae1b9889a3 133 i = 0.5;
Reniboy 0:e1ae1b9889a3 134 r_led = 0;
Reniboy 0:e1ae1b9889a3 135
Reniboy 0:e1ae1b9889a3 136 }
Reniboy 0:e1ae1b9889a3 137 if (distance >= 50) {
Reniboy 0:e1ae1b9889a3 138 i = 0.25;
Reniboy 0:e1ae1b9889a3 139 r_led = 0;
Reniboy 0:e1ae1b9889a3 140
Reniboy 0:e1ae1b9889a3 141 }
Reniboy 0:e1ae1b9889a3 142 if (distance < 25) {
Reniboy 0:e1ae1b9889a3 143 i = 0.05;
Reniboy 0:e1ae1b9889a3 144 r_led = 0;
Reniboy 0:e1ae1b9889a3 145 }
Reniboy 0:e1ae1b9889a3 146 buzzer.beep(1000, 0.5);
Reniboy 0:e1ae1b9889a3 147 wait(i);
Reniboy 0:e1ae1b9889a3 148 buzzer.nobeep();
Reniboy 0:e1ae1b9889a3 149 wait(i);
Reniboy 0:e1ae1b9889a3 150 }
Reniboy 0:e1ae1b9889a3 151
Reniboy 0:e1ae1b9889a3 152
Reniboy 0:e1ae1b9889a3 153
Reniboy 0:e1ae1b9889a3 154 void sweep()
Reniboy 0:e1ae1b9889a3 155 {
Reniboy 0:e1ae1b9889a3 156 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 157 char str[14];
Reniboy 0:e1ae1b9889a3 158 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 159
Reniboy 0:e1ae1b9889a3 160 lcd.clear();
Reniboy 0:e1ae1b9889a3 161 lcd.drawLine(42,47,4,36,1);// Fourth and final trace to the left
Reniboy 0:e1ae1b9889a3 162 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 163 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 164 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 165 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 166 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 167
Reniboy 0:e1ae1b9889a3 168 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 169 lcd.refresh();
Reniboy 0:e1ae1b9889a3 170
Reniboy 0:e1ae1b9889a3 171 }
Reniboy 0:e1ae1b9889a3 172 void sweepOne()
Reniboy 0:e1ae1b9889a3 173 {
Reniboy 0:e1ae1b9889a3 174 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 175 char str[14];
Reniboy 0:e1ae1b9889a3 176 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 177 lcd.clear();
Reniboy 0:e1ae1b9889a3 178 lcd.drawLine(42,47,10,25,1);//Third trace to the left
Reniboy 0:e1ae1b9889a3 179 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 180 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 181 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 182 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 183 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 184 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 185 lcd.refresh();
Reniboy 0:e1ae1b9889a3 186
Reniboy 0:e1ae1b9889a3 187 }
Reniboy 0:e1ae1b9889a3 188
Reniboy 0:e1ae1b9889a3 189 void sweepTwo()
Reniboy 0:e1ae1b9889a3 190 {
Reniboy 0:e1ae1b9889a3 191 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 192 char str[14];
Reniboy 0:e1ae1b9889a3 193 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 194 lcd.clear();
Reniboy 0:e1ae1b9889a3 195 lcd.drawLine(42,47,21,15,1);//Second Line to the left
Reniboy 0:e1ae1b9889a3 196 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 197 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 198 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 199 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 200 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 201 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 202
Reniboy 0:e1ae1b9889a3 203 lcd.refresh();
Reniboy 0:e1ae1b9889a3 204 }
Reniboy 0:e1ae1b9889a3 205
Reniboy 0:e1ae1b9889a3 206 void sweepThree()
Reniboy 0:e1ae1b9889a3 207 {
Reniboy 0:e1ae1b9889a3 208 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 209 char str[14];
Reniboy 0:e1ae1b9889a3 210 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 211 lcd.clear();
Reniboy 0:e1ae1b9889a3 212 lcd.drawLine(42,47,32,11,1);//First Line to the left
Reniboy 0:e1ae1b9889a3 213 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 214 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 215 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 216 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 217 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 218 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 219
Reniboy 0:e1ae1b9889a3 220 lcd.refresh();
Reniboy 0:e1ae1b9889a3 221
Reniboy 0:e1ae1b9889a3 222 }
Reniboy 0:e1ae1b9889a3 223
Reniboy 0:e1ae1b9889a3 224 void sweepFour()
Reniboy 0:e1ae1b9889a3 225 {
Reniboy 0:e1ae1b9889a3 226 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 227 char str[14];
Reniboy 0:e1ae1b9889a3 228 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 229 lcd.clear();
Reniboy 0:e1ae1b9889a3 230 lcd.drawLine(42,47,42,9,1);
Reniboy 0:e1ae1b9889a3 231 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 232 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 233 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 234 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 235 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 236 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 237
Reniboy 0:e1ae1b9889a3 238 lcd.refresh();
Reniboy 0:e1ae1b9889a3 239 }
Reniboy 0:e1ae1b9889a3 240 void sweepFive()
Reniboy 0:e1ae1b9889a3 241 {
Reniboy 0:e1ae1b9889a3 242 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 243 char str[14];
Reniboy 0:e1ae1b9889a3 244 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 245 lcd.clear();
Reniboy 0:e1ae1b9889a3 246 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 247 lcd.drawLine(42,47,42,9,1);
Reniboy 0:e1ae1b9889a3 248 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 249 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 250 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 251 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 252 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 253
Reniboy 0:e1ae1b9889a3 254 lcd.refresh();
Reniboy 0:e1ae1b9889a3 255
Reniboy 0:e1ae1b9889a3 256 }
Reniboy 0:e1ae1b9889a3 257 void sweepSix()
Reniboy 0:e1ae1b9889a3 258 {
Reniboy 0:e1ae1b9889a3 259 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 260 char str[14];
Reniboy 0:e1ae1b9889a3 261 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 262 lcd.clear();
Reniboy 0:e1ae1b9889a3 263 lcd.drawLine(42,47,52,11,1);//First line to the right
Reniboy 0:e1ae1b9889a3 264 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 265 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 266 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 267 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 268 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 269 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 270 lcd.refresh();
Reniboy 0:e1ae1b9889a3 271 }
Reniboy 0:e1ae1b9889a3 272
Reniboy 0:e1ae1b9889a3 273 void sweepSeven()
Reniboy 0:e1ae1b9889a3 274 {
Reniboy 0:e1ae1b9889a3 275 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 276 char str[14];
Reniboy 0:e1ae1b9889a3 277 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 278 lcd.clear();
Reniboy 0:e1ae1b9889a3 279 lcd.drawLine(42,47,63,15,1);//Second Line to the right
Reniboy 0:e1ae1b9889a3 280 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 281 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 282 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 283 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 284 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 285 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 286 lcd.refresh();
Reniboy 0:e1ae1b9889a3 287 }
Reniboy 0:e1ae1b9889a3 288
Reniboy 0:e1ae1b9889a3 289 void sweepEight()
Reniboy 0:e1ae1b9889a3 290 {
Reniboy 0:e1ae1b9889a3 291 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 292 char str[14];
Reniboy 0:e1ae1b9889a3 293 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 294 lcd.clear();
Reniboy 0:e1ae1b9889a3 295 lcd.drawLine(42,47,74,25,1);//Third trace on the right
Reniboy 0:e1ae1b9889a3 296 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 297 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 298 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 299 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 300 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 301
Reniboy 0:e1ae1b9889a3 302 lcd.refresh();
Reniboy 0:e1ae1b9889a3 303 }
Reniboy 0:e1ae1b9889a3 304
Reniboy 0:e1ae1b9889a3 305 void sweepNine()
Reniboy 0:e1ae1b9889a3 306 {
Reniboy 0:e1ae1b9889a3 307 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 308 char str[14];
Reniboy 0:e1ae1b9889a3 309 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 310 lcd.clear();
Reniboy 0:e1ae1b9889a3 311 lcd.drawCircle(42,47,38,0);
Reniboy 0:e1ae1b9889a3 312 lcd.drawCircle(42,47,26,0);
Reniboy 0:e1ae1b9889a3 313 lcd.drawCircle(42,47,14,0);
Reniboy 0:e1ae1b9889a3 314 lcd.drawCircle(42,47,2,0);
Reniboy 0:e1ae1b9889a3 315
Reniboy 0:e1ae1b9889a3 316 lcd.drawLine(42,47,80,36,1);//Fourth trace to the right
Reniboy 0:e1ae1b9889a3 317 lcd.drawLine(0,47,83,47,1);//centre line
Reniboy 0:e1ae1b9889a3 318 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 319 lcd.refresh();
Reniboy 0:e1ae1b9889a3 320 }
Reniboy 0:e1ae1b9889a3 321
Reniboy 0:e1ae1b9889a3 322 void sensingImage() /**Function to allow the sensor to read distance in classic mode in centimetres **/
Reniboy 0:e1ae1b9889a3 323
Reniboy 0:e1ae1b9889a3 324 {
Reniboy 0:e1ae1b9889a3 325 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 326 char str[14];
Reniboy 0:e1ae1b9889a3 327 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 328
Reniboy 0:e1ae1b9889a3 329
Reniboy 0:e1ae1b9889a3 330
Reniboy 0:e1ae1b9889a3 331 if (distance>250) {
Reniboy 0:e1ae1b9889a3 332 lcd.clear();
Reniboy 0:e1ae1b9889a3 333 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 334 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 335 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 336 lcd.refresh();
Reniboy 0:e1ae1b9889a3 337 }
Reniboy 0:e1ae1b9889a3 338 if (distance<=250) {
Reniboy 0:e1ae1b9889a3 339 lcd.clear();
Reniboy 0:e1ae1b9889a3 340 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 341 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 342 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 343 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 344 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 345 lcd.refresh();
Reniboy 0:e1ae1b9889a3 346 }
Reniboy 0:e1ae1b9889a3 347 if (distance< 100) {
Reniboy 0:e1ae1b9889a3 348 lcd.clear();
Reniboy 0:e1ae1b9889a3 349 lcd.drawRect(14,12,5.5,24,1); // third rectangle to the left
Reniboy 0:e1ae1b9889a3 350 lcd.drawRect(64.5,12,5.5,24,1); // third rectangle to the right
Reniboy 0:e1ae1b9889a3 351 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 352 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 353 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 354 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 355 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 356 lcd.refresh();
Reniboy 0:e1ae1b9889a3 357
Reniboy 0:e1ae1b9889a3 358 }
Reniboy 0:e1ae1b9889a3 359 if (distance < 40) {
Reniboy 0:e1ae1b9889a3 360 lcd.clear();
Reniboy 0:e1ae1b9889a3 361 lcd.drawRect(21,8.5,5.5,30,1); // second rectangle on the left
Reniboy 0:e1ae1b9889a3 362 lcd.drawRect(57.5,8.5,5.5,30,1);//second rectangle to the right
Reniboy 0:e1ae1b9889a3 363 lcd.drawRect(14,12,5.5,24,1); // third rectangle to the left
Reniboy 0:e1ae1b9889a3 364 lcd.drawRect(64.5,12,5.5,24,1); // third rectangle to the right
Reniboy 0:e1ae1b9889a3 365 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 366 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 367 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 368 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 369 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 370 lcd.refresh();
Reniboy 0:e1ae1b9889a3 371
Reniboy 0:e1ae1b9889a3 372
Reniboy 0:e1ae1b9889a3 373
Reniboy 0:e1ae1b9889a3 374 }
Reniboy 0:e1ae1b9889a3 375 if (distance < 20.0) {
Reniboy 0:e1ae1b9889a3 376
Reniboy 0:e1ae1b9889a3 377 lcd.clear();
Reniboy 0:e1ae1b9889a3 378 lcd.drawRect(28,5,5.5,36,1); //first rectangle to the left
Reniboy 0:e1ae1b9889a3 379 lcd.drawRect(50.5,5,5.5,36,1); // first rectangle to the right
Reniboy 0:e1ae1b9889a3 380 lcd.drawRect(21,8.5,5.5,30,1); // second rectangle on the left
Reniboy 0:e1ae1b9889a3 381 lcd.drawRect(57.5,8.5,5.5,30,1);//second rectangle to the right
Reniboy 0:e1ae1b9889a3 382 lcd.drawRect(14,12,5.5,24,1); // third rectangle to the left
Reniboy 0:e1ae1b9889a3 383 lcd.drawRect(64.5,12,5.5,24,1); // third rectangle to the right
Reniboy 0:e1ae1b9889a3 384 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 385 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 386 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 387 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 388 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 389 lcd.refresh();
Reniboy 0:e1ae1b9889a3 390 }
Reniboy 0:e1ae1b9889a3 391
Reniboy 0:e1ae1b9889a3 392 lcd.refresh();
Reniboy 0:e1ae1b9889a3 393
Reniboy 0:e1ae1b9889a3 394 }
Reniboy 0:e1ae1b9889a3 395 void sensingImageIn() /**Function to allow the sensor to read distance in classic mode in inches **/
Reniboy 0:e1ae1b9889a3 396
Reniboy 0:e1ae1b9889a3 397 {
Reniboy 0:e1ae1b9889a3 398 int distanceIn = averageDistanceIn();
Reniboy 0:e1ae1b9889a3 399 char str[14];
Reniboy 0:e1ae1b9889a3 400 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 401
Reniboy 0:e1ae1b9889a3 402
Reniboy 0:e1ae1b9889a3 403
Reniboy 0:e1ae1b9889a3 404 if (distance>250) {
Reniboy 0:e1ae1b9889a3 405 lcd.clear();
Reniboy 0:e1ae1b9889a3 406 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 407 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 408 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 409 lcd.refresh();
Reniboy 0:e1ae1b9889a3 410 }
Reniboy 0:e1ae1b9889a3 411 if (distance<=250) {
Reniboy 0:e1ae1b9889a3 412 lcd.clear();
Reniboy 0:e1ae1b9889a3 413 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 414 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 415 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 416 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 417 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 418 lcd.refresh();
Reniboy 0:e1ae1b9889a3 419 }
Reniboy 0:e1ae1b9889a3 420 if (distance< 100) {
Reniboy 0:e1ae1b9889a3 421 lcd.clear();
Reniboy 0:e1ae1b9889a3 422 lcd.drawRect(14,12,5.5,24,1); // third rectangle to the left
Reniboy 0:e1ae1b9889a3 423 lcd.drawRect(64.5,12,5.5,24,1); // third rectangle to the right
Reniboy 0:e1ae1b9889a3 424 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 425 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 426 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 427 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 428 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 429 lcd.refresh();
Reniboy 0:e1ae1b9889a3 430
Reniboy 0:e1ae1b9889a3 431 }
Reniboy 0:e1ae1b9889a3 432 if (distance < 40) {
Reniboy 0:e1ae1b9889a3 433 lcd.clear();
Reniboy 0:e1ae1b9889a3 434 lcd.drawRect(21,8.5,5.5,30,1); // second rectangle on the left
Reniboy 0:e1ae1b9889a3 435 lcd.drawRect(57.5,8.5,5.5,30,1);//second rectangle to the right
Reniboy 0:e1ae1b9889a3 436 lcd.drawRect(14,12,5.5,24,1); // third rectangle to the left
Reniboy 0:e1ae1b9889a3 437 lcd.drawRect(64.5,12,5.5,24,1); // third rectangle to the right
Reniboy 0:e1ae1b9889a3 438 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 439 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 440 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 441 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 442 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 443 lcd.refresh();
Reniboy 0:e1ae1b9889a3 444
Reniboy 0:e1ae1b9889a3 445
Reniboy 0:e1ae1b9889a3 446
Reniboy 0:e1ae1b9889a3 447 }
Reniboy 0:e1ae1b9889a3 448 if (distance < 20.0) {
Reniboy 0:e1ae1b9889a3 449
Reniboy 0:e1ae1b9889a3 450 lcd.clear();
Reniboy 0:e1ae1b9889a3 451 lcd.drawRect(28,5,5.5,36,1); //first rectangle to the left
Reniboy 0:e1ae1b9889a3 452 lcd.drawRect(50.5,5,5.5,36,1); // first rectangle to the right
Reniboy 0:e1ae1b9889a3 453 lcd.drawRect(21,8.5,5.5,30,1); // second rectangle on the left
Reniboy 0:e1ae1b9889a3 454 lcd.drawRect(57.5,8.5,5.5,30,1);//second rectangle to the right
Reniboy 0:e1ae1b9889a3 455 lcd.drawRect(14,12,5.5,24,1); // third rectangle to the left
Reniboy 0:e1ae1b9889a3 456 lcd.drawRect(64.5,12,5.5,24,1); // third rectangle to the right
Reniboy 0:e1ae1b9889a3 457 lcd.drawRect(7,15.5,5.5,18,1); // fourth rectangle to the left
Reniboy 0:e1ae1b9889a3 458 lcd.drawRect(71.5,15.5,5.5,18,1); // fourth rectangle to the right
Reniboy 0:e1ae1b9889a3 459 lcd.drawRect(1,19,4.5,12,1); //plot of fifth rectangle to the left
Reniboy 0:e1ae1b9889a3 460 lcd.drawRect(78.5,19,4.5,12,1);
Reniboy 0:e1ae1b9889a3 461 lcd.printString(str,35.5,2.5); // plot of fifth rectangle to the right
Reniboy 0:e1ae1b9889a3 462 lcd.refresh();
Reniboy 0:e1ae1b9889a3 463 }
Reniboy 0:e1ae1b9889a3 464
Reniboy 0:e1ae1b9889a3 465 lcd.refresh();
Reniboy 0:e1ae1b9889a3 466
Reniboy 0:e1ae1b9889a3 467 }
Reniboy 0:e1ae1b9889a3 468
Reniboy 0:e1ae1b9889a3 469
Reniboy 0:e1ae1b9889a3 470
Reniboy 0:e1ae1b9889a3 471
Reniboy 0:e1ae1b9889a3 472 void sweepSpeed()
Reniboy 0:e1ae1b9889a3 473 /*@Brief Function to create the effect of sweep speeds depending on how close the sensor is to an object */
Reniboy 0:e1ae1b9889a3 474 {
Reniboy 0:e1ae1b9889a3 475
Reniboy 0:e1ae1b9889a3 476 int distance = averageDistance();
Reniboy 0:e1ae1b9889a3 477 char str[14];
Reniboy 0:e1ae1b9889a3 478 sprintf(str,"%i",distance);
Reniboy 0:e1ae1b9889a3 479
Reniboy 0:e1ae1b9889a3 480
Reniboy 0:e1ae1b9889a3 481 if (distance>250.0) {
Reniboy 0:e1ae1b9889a3 482 t = 1.5;
Reniboy 0:e1ae1b9889a3 483
Reniboy 0:e1ae1b9889a3 484 }
Reniboy 0:e1ae1b9889a3 485 if (distance<=200.0) {
Reniboy 0:e1ae1b9889a3 486 t = 1.2;
Reniboy 0:e1ae1b9889a3 487
Reniboy 0:e1ae1b9889a3 488 }
Reniboy 0:e1ae1b9889a3 489 if (distance<100.0) {
Reniboy 0:e1ae1b9889a3 490 t = 1;
Reniboy 0:e1ae1b9889a3 491
Reniboy 0:e1ae1b9889a3 492
Reniboy 0:e1ae1b9889a3 493 }
Reniboy 0:e1ae1b9889a3 494 if (distance<80) {
Reniboy 0:e1ae1b9889a3 495 t = 0.8;
Reniboy 0:e1ae1b9889a3 496
Reniboy 0:e1ae1b9889a3 497
Reniboy 0:e1ae1b9889a3 498 }
Reniboy 0:e1ae1b9889a3 499 if (distance<60) {
Reniboy 0:e1ae1b9889a3 500 t = 0.6;
Reniboy 0:e1ae1b9889a3 501
Reniboy 0:e1ae1b9889a3 502
Reniboy 0:e1ae1b9889a3 503 }
Reniboy 0:e1ae1b9889a3 504 if (distance<40) {
Reniboy 0:e1ae1b9889a3 505 t = 0.4;
Reniboy 0:e1ae1b9889a3 506 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 507
Reniboy 0:e1ae1b9889a3 508 }
Reniboy 0:e1ae1b9889a3 509 if (distance<20) {
Reniboy 0:e1ae1b9889a3 510 t = 0.3;
Reniboy 0:e1ae1b9889a3 511 lcd.printString(str,1,0);
Reniboy 0:e1ae1b9889a3 512 }
Reniboy 0:e1ae1b9889a3 513
Reniboy 0:e1ae1b9889a3 514 sweep();
Reniboy 0:e1ae1b9889a3 515 wait(t);
Reniboy 0:e1ae1b9889a3 516 sweepOne();
Reniboy 0:e1ae1b9889a3 517 wait(t);
Reniboy 0:e1ae1b9889a3 518 sweepTwo();
Reniboy 0:e1ae1b9889a3 519 wait(t);
Reniboy 0:e1ae1b9889a3 520 sweepThree();
Reniboy 0:e1ae1b9889a3 521 wait(t);
Reniboy 0:e1ae1b9889a3 522 sweepFour();
Reniboy 0:e1ae1b9889a3 523 wait(t);
Reniboy 0:e1ae1b9889a3 524 sweepFive();
Reniboy 0:e1ae1b9889a3 525 wait(t);
Reniboy 0:e1ae1b9889a3 526 sweepSix();
Reniboy 0:e1ae1b9889a3 527 wait(t);
Reniboy 0:e1ae1b9889a3 528 sweepSeven();
Reniboy 0:e1ae1b9889a3 529 wait(t);
Reniboy 0:e1ae1b9889a3 530 sweepEight();
Reniboy 0:e1ae1b9889a3 531 wait(t);
Reniboy 0:e1ae1b9889a3 532 sweepNine();
Reniboy 0:e1ae1b9889a3 533 wait(t);
Reniboy 0:e1ae1b9889a3 534 sweepEight();
Reniboy 0:e1ae1b9889a3 535 wait(t);
Reniboy 0:e1ae1b9889a3 536 sweepSeven();
Reniboy 0:e1ae1b9889a3 537 wait(t);
Reniboy 0:e1ae1b9889a3 538 sweepSix();
Reniboy 0:e1ae1b9889a3 539 wait(t);
Reniboy 0:e1ae1b9889a3 540 sweepFive();
Reniboy 0:e1ae1b9889a3 541 wait(t);
Reniboy 0:e1ae1b9889a3 542 sweepFour();
Reniboy 0:e1ae1b9889a3 543 wait(t);
Reniboy 0:e1ae1b9889a3 544 sweepThree();
Reniboy 0:e1ae1b9889a3 545 wait(t);
Reniboy 0:e1ae1b9889a3 546 sweepTwo();
Reniboy 0:e1ae1b9889a3 547 wait(t);
Reniboy 0:e1ae1b9889a3 548 sweepOne();
Reniboy 0:e1ae1b9889a3 549 wait(t);
Reniboy 0:e1ae1b9889a3 550 sweep();
Reniboy 0:e1ae1b9889a3 551
Reniboy 0:e1ae1b9889a3 552
Reniboy 0:e1ae1b9889a3 553
Reniboy 0:e1ae1b9889a3 554
Reniboy 0:e1ae1b9889a3 555 }
Reniboy 0:e1ae1b9889a3 556
Reniboy 0:e1ae1b9889a3 557
Reniboy 0:e1ae1b9889a3 558
Reniboy 0:e1ae1b9889a3 559 void active()
Reniboy 0:e1ae1b9889a3 560
Reniboy 0:e1ae1b9889a3 561 {
Reniboy 0:e1ae1b9889a3 562 lcd.clear();
Reniboy 0:e1ae1b9889a3 563 ticker.attach(&timer_isr,0.5);
Reniboy 0:e1ae1b9889a3 564 while (1) {
Reniboy 0:e1ae1b9889a3 565 if (g_timer_flag) {
Reniboy 0:e1ae1b9889a3 566 g_timer_flag = 0;
Reniboy 0:e1ae1b9889a3 567 sensingImage();
Reniboy 0:e1ae1b9889a3 568 lcd.refresh();
Reniboy 0:e1ae1b9889a3 569 beeping();
Reniboy 0:e1ae1b9889a3 570 }
Reniboy 0:e1ae1b9889a3 571 if (g_sw3_flag) { //Allows the button to interrupt and call the main function when the back button is pressed.
Reniboy 0:e1ae1b9889a3 572 g_sw3_flag = 0;
Reniboy 0:e1ae1b9889a3 573 mainProg();
Reniboy 0:e1ae1b9889a3 574 ticker.detach();
Reniboy 0:e1ae1b9889a3 575 }
Reniboy 0:e1ae1b9889a3 576
Reniboy 0:e1ae1b9889a3 577
Reniboy 0:e1ae1b9889a3 578
Reniboy 0:e1ae1b9889a3 579 sleep(); //Allows the sensor to sleep when not calling the function to save power.
Reniboy 0:e1ae1b9889a3 580 }
Reniboy 0:e1ae1b9889a3 581
Reniboy 0:e1ae1b9889a3 582 }
Reniboy 0:e1ae1b9889a3 583 void active()
Reniboy 0:e1ae1b9889a3 584
Reniboy 0:e1ae1b9889a3 585 {
Reniboy 0:e1ae1b9889a3 586 lcd.clear();
Reniboy 0:e1ae1b9889a3 587 ticker3.attach(&timer_isr,0.5);
Reniboy 0:e1ae1b9889a3 588 while (1) {
Reniboy 0:e1ae1b9889a3 589 if (g_timer_flag) {
Reniboy 0:e1ae1b9889a3 590 g_timer_flag = 0;
Reniboy 0:e1ae1b9889a3 591 sensingImageIn();
Reniboy 0:e1ae1b9889a3 592 lcd.refresh();
Reniboy 0:e1ae1b9889a3 593 beeping();
Reniboy 0:e1ae1b9889a3 594 }
Reniboy 0:e1ae1b9889a3 595 if (g_sw3_flag) { //Allows the button to interrupt and call the main function when the back button is pressed.
Reniboy 0:e1ae1b9889a3 596 g_sw3_flag = 0;
Reniboy 0:e1ae1b9889a3 597 mainProg();
Reniboy 0:e1ae1b9889a3 598 ticker.detach();
Reniboy 0:e1ae1b9889a3 599 }
Reniboy 0:e1ae1b9889a3 600
Reniboy 0:e1ae1b9889a3 601
Reniboy 0:e1ae1b9889a3 602
Reniboy 0:e1ae1b9889a3 603 sleep(); //Allows the sensor to sleep when not calling the function to save power.
Reniboy 0:e1ae1b9889a3 604 }
Reniboy 0:e1ae1b9889a3 605
Reniboy 0:e1ae1b9889a3 606 }
Reniboy 0:e1ae1b9889a3 607
Reniboy 0:e1ae1b9889a3 608 void radar()
Reniboy 0:e1ae1b9889a3 609 {
Reniboy 0:e1ae1b9889a3 610 lcd.clear();
Reniboy 0:e1ae1b9889a3 611 ticker2.attach(&timer_isr,0.5);
Reniboy 0:e1ae1b9889a3 612 while(1) {
Reniboy 0:e1ae1b9889a3 613 if (g_timer_flag) {
Reniboy 0:e1ae1b9889a3 614 g_timer_flag = 0;
Reniboy 0:e1ae1b9889a3 615 sweepSpeed();
Reniboy 0:e1ae1b9889a3 616 lcd.refresh();
Reniboy 0:e1ae1b9889a3 617 beeping();
Reniboy 0:e1ae1b9889a3 618 }
Reniboy 0:e1ae1b9889a3 619 if (g_sw3_flag) { //Allows the button to interrupt and call the main function when the back button is pressed.
Reniboy 0:e1ae1b9889a3 620 g_sw3_flag = 0;
Reniboy 0:e1ae1b9889a3 621 mainProg();
Reniboy 0:e1ae1b9889a3 622 ticker2.detach();
Reniboy 0:e1ae1b9889a3 623 }
Reniboy 0:e1ae1b9889a3 624 sleep();
Reniboy 0:e1ae1b9889a3 625 }
Reniboy 0:e1ae1b9889a3 626
Reniboy 0:e1ae1b9889a3 627 }
Reniboy 0:e1ae1b9889a3 628
Reniboy 0:e1ae1b9889a3 629
Reniboy 0:e1ae1b9889a3 630 void introTune() /**@Brief Function defining introductory message **/
Reniboy 0:e1ae1b9889a3 631 {
Reniboy 0:e1ae1b9889a3 632
Reniboy 0:e1ae1b9889a3 633 buzzer.beep(350,1);//F
Reniboy 0:e1ae1b9889a3 634 wait(0.2);
Reniboy 0:e1ae1b9889a3 635 buzzer.beep(262,1);//C
Reniboy 0:e1ae1b9889a3 636 wait(0.2);
Reniboy 0:e1ae1b9889a3 637 buzzer.beep(294,1);//D
Reniboy 0:e1ae1b9889a3 638 wait(0.2);
Reniboy 0:e1ae1b9889a3 639 buzzer.beep(350,0.5);//F
Reniboy 0:e1ae1b9889a3 640 wait(0.2);
Reniboy 0:e1ae1b9889a3 641 buzzer.beep(350,0.5);
Reniboy 0:e1ae1b9889a3 642 wait(0.2);
Reniboy 0:e1ae1b9889a3 643 buzzer.beep(262,1);
Reniboy 0:e1ae1b9889a3 644 wait(0.2);
Reniboy 0:e1ae1b9889a3 645 buzzer.beep(294,1);
Reniboy 0:e1ae1b9889a3 646 wait(0.2);
Reniboy 0:e1ae1b9889a3 647 buzzer.beep(350,1);
Reniboy 0:e1ae1b9889a3 648 wait(0.2);
Reniboy 0:e1ae1b9889a3 649 }
Reniboy 0:e1ae1b9889a3 650
Reniboy 0:e1ae1b9889a3 651
Reniboy 0:e1ae1b9889a3 652
Reniboy 0:e1ae1b9889a3 653 void classicMode() /** @brief Function to print on the screen when no selection is chosen **/
Reniboy 0:e1ae1b9889a3 654 {
Reniboy 0:e1ae1b9889a3 655 lcd.clear();
Reniboy 0:e1ae1b9889a3 656 lcd.printString("SELECT A MODE:",0,0.5);
Reniboy 0:e1ae1b9889a3 657 lcd.printString("CLASSIC (cm)", 11,2);
Reniboy 0:e1ae1b9889a3 658 lcd.printString("RADAR MODE",11,3);
Reniboy 0:e1ae1b9889a3 659 lcd.printString("CLASSIC (in)",11,4);
Reniboy 0:e1ae1b9889a3 660 lcd.drawCircle(3,19.5,3,1);
Reniboy 0:e1ae1b9889a3 661 lcd.refresh();
Reniboy 0:e1ae1b9889a3 662
Reniboy 0:e1ae1b9889a3 663 }
Reniboy 0:e1ae1b9889a3 664
Reniboy 0:e1ae1b9889a3 665
Reniboy 0:e1ae1b9889a3 666 void radarMode()
Reniboy 0:e1ae1b9889a3 667 {
Reniboy 0:e1ae1b9889a3 668 lcd.clear();
Reniboy 0:e1ae1b9889a3 669 lcd.printString("SELECT A MODE:",0,0.5);
Reniboy 0:e1ae1b9889a3 670 lcd.printString("CLASSIC (cm)", 11,2);
Reniboy 0:e1ae1b9889a3 671 lcd.printString("RADAR MODE",11,3);
Reniboy 0:e1ae1b9889a3 672 lcd.printString("CLASSIC (in)",11,4);
Reniboy 0:e1ae1b9889a3 673 lcd.drawCircle(3,26.5,3,1);
Reniboy 0:e1ae1b9889a3 674 lcd.refresh();
Reniboy 0:e1ae1b9889a3 675 }
Reniboy 0:e1ae1b9889a3 676
Reniboy 0:e1ae1b9889a3 677 void classicMode1()
Reniboy 0:e1ae1b9889a3 678 {
Reniboy 0:e1ae1b9889a3 679 lcd.clear();
Reniboy 0:e1ae1b9889a3 680 lcd.printString("SELECT A MODE:",0,0.5);
Reniboy 0:e1ae1b9889a3 681 lcd.printString("CLASSIC MODE (cm)", 11,2);
Reniboy 0:e1ae1b9889a3 682 lcd.printString("RADAR MODE",11,3);
Reniboy 0:e1ae1b9889a3 683 lcd.printString("CLASSIC MODE (in)",11,4);
Reniboy 0:e1ae1b9889a3 684 lcd.drawCircle(3,34.5,3,1);
Reniboy 0:e1ae1b9889a3 685 lcd.refresh();
Reniboy 0:e1ae1b9889a3 686 }
Reniboy 0:e1ae1b9889a3 687
Reniboy 0:e1ae1b9889a3 688
Reniboy 0:e1ae1b9889a3 689 void button_isr()
Reniboy 0:e1ae1b9889a3 690 {
Reniboy 0:e1ae1b9889a3 691 g_button_flag = 1; // set flag in ISR
Reniboy 0:e1ae1b9889a3 692 }
Reniboy 0:e1ae1b9889a3 693 void sw3_isr()
Reniboy 0:e1ae1b9889a3 694 {
Reniboy 0:e1ae1b9889a3 695 g_sw3_flag = 1;
Reniboy 0:e1ae1b9889a3 696 }
Reniboy 0:e1ae1b9889a3 697
Reniboy 0:e1ae1b9889a3 698
Reniboy 0:e1ae1b9889a3 699
Reniboy 0:e1ae1b9889a3 700 void timer_isr()
Reniboy 0:e1ae1b9889a3 701 {
Reniboy 0:e1ae1b9889a3 702 g_timer_flag = 1; /** @Brief Set flag in ISR **/
Reniboy 0:e1ae1b9889a3 703 }
Reniboy 0:e1ae1b9889a3 704 void timer2_isr()
Reniboy 0:e1ae1b9889a3 705 {
Reniboy 0:e1ae1b9889a3 706 g_timer2_flag = 1; /** @Brief set flag 2 in ISR **/
Reniboy 0:e1ae1b9889a3 707 }
Reniboy 0:e1ae1b9889a3 708
Reniboy 0:e1ae1b9889a3 709 void timer1_isr()
Reniboy 0:e1ae1b9889a3 710 {
Reniboy 0:e1ae1b9889a3 711
Reniboy 0:e1ae1b9889a3 712 g_timer1_flag = 1;
Reniboy 0:e1ae1b9889a3 713 }