an ultrasonic sensor used as a car sensor
Dependencies: N5110 PowerControl beep mbed sensor
main.cpp@2:9328053b2ba7, 2015-05-11 (annotated)
- Committer:
- sjaffal3
- Date:
- Mon May 11 19:49:17 2015 +0000
- Revision:
- 2:9328053b2ba7
- Parent:
- 1:475a5b7258fa
final code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sjaffal3 | 1:475a5b7258fa | 1 | /** |
sjaffal3 | 1:475a5b7258fa | 2 | @file main.cpp |
sjaffal3 | 0:be8f580f1b5b | 3 | |
sjaffal3 | 1:475a5b7258fa | 4 | @brief Program implementation |
sjaffal3 | 0:be8f580f1b5b | 5 | |
sjaffal3 | 1:475a5b7258fa | 6 | */ |
sjaffal3 | 0:be8f580f1b5b | 7 | |
sjaffal3 | 1:475a5b7258fa | 8 | #include "main.h" |
sjaffal3 | 0:be8f580f1b5b | 9 | |
sjaffal3 | 0:be8f580f1b5b | 10 | |
sjaffal3 | 2:9328053b2ba7 | 11 | |
sjaffal3 | 0:be8f580f1b5b | 12 | int main() |
sjaffal3 | 2:9328053b2ba7 | 13 | { |
sjaffal3 | 2:9328053b2ba7 | 14 | |
sjaffal3 | 2:9328053b2ba7 | 15 | |
sjaffal3 | 2:9328053b2ba7 | 16 | PHY_PowerDown(); /// the Ethernet cable is powered down |
sjaffal3 | 2:9328053b2ba7 | 17 | lcd.init(); /// the LCD display is initialised when switch is on |
sjaffal3 | 2:9328053b2ba7 | 18 | welcomeMessage(); /// the welcome message will appear |
sjaffal3 | 2:9328053b2ba7 | 19 | button.rise(&buttonPressed); /// event generated on rising edge |
sjaffal3 | 1:475a5b7258fa | 20 | |
sjaffal3 | 0:be8f580f1b5b | 21 | |
sjaffal3 | 0:be8f580f1b5b | 22 | while (1) { |
sjaffal3 | 2:9328053b2ba7 | 23 | |
sjaffal3 | 2:9328053b2ba7 | 24 | mypotVal = mypot; ///sets a variable to change as the pot is changing |
sjaffal3 | 2:9328053b2ba7 | 25 | lcd.setBrightness(mypotVal); ///sets the brightness to the pot value |
sjaffal3 | 2:9328053b2ba7 | 26 | compDist(); ///compares the distance to set it in a specific range |
sjaffal3 | 1:475a5b7258fa | 27 | |
sjaffal3 | 1:475a5b7258fa | 28 | |
sjaffal3 | 1:475a5b7258fa | 29 | } |
sjaffal3 | 0:be8f580f1b5b | 30 | |
sjaffal3 | 0:be8f580f1b5b | 31 | |
sjaffal3 | 0:be8f580f1b5b | 32 | } |
sjaffal3 | 0:be8f580f1b5b | 33 | |
sjaffal3 | 2:9328053b2ba7 | 34 | void buttonPressed() |
sjaffal3 | 1:475a5b7258fa | 35 | { |
sjaffal3 | 2:9328053b2ba7 | 36 | wait(0.2); |
sjaffal3 | 1:475a5b7258fa | 37 | |
sjaffal3 | 2:9328053b2ba7 | 38 | if (i>1) ///when button is pressed it will check if i >1 |
sjaffal3 | 2:9328053b2ba7 | 39 | { i=0; /// if it is it will set it to 0 |
sjaffal3 | 1:475a5b7258fa | 40 | } |
sjaffal3 | 2:9328053b2ba7 | 41 | else |
sjaffal3 | 2:9328053b2ba7 | 42 | { i++; /// if not it will increment i by one |
sjaffal3 | 1:475a5b7258fa | 43 | } |
sjaffal3 | 2:9328053b2ba7 | 44 | |
sjaffal3 | 2:9328053b2ba7 | 45 | } |
sjaffal3 | 1:475a5b7258fa | 46 | |
sjaffal3 | 2:9328053b2ba7 | 47 | |
sjaffal3 | 2:9328053b2ba7 | 48 | |
sjaffal3 | 2:9328053b2ba7 | 49 | ///Print welcome message |
sjaffal3 | 0:be8f580f1b5b | 50 | void welcomeMessage() |
sjaffal3 | 0:be8f580f1b5b | 51 | { |
sjaffal3 | 0:be8f580f1b5b | 52 | |
sjaffal3 | 2:9328053b2ba7 | 53 | |
sjaffal3 | 2:9328053b2ba7 | 54 | lcd.printString("University of ",5,0); |
sjaffal3 | 2:9328053b2ba7 | 55 | lcd.printString("Leeds",27,1); |
sjaffal3 | 2:9328053b2ba7 | 56 | |
sjaffal3 | 2:9328053b2ba7 | 57 | lcd.refresh(); |
sjaffal3 | 2:9328053b2ba7 | 58 | |
sjaffal3 | 2:9328053b2ba7 | 59 | lcd.drawRect(59,36,5,11,0);///bottom left rectangle is set |
sjaffal3 | 2:9328053b2ba7 | 60 | lcd.drawRect(72,36,5,11,0);///bottom right rectangle is set |
sjaffal3 | 2:9328053b2ba7 | 61 | lcd.drawRect(64,34,8,13,0);///bottom middle rectangle is set |
sjaffal3 | 2:9328053b2ba7 | 62 | |
sjaffal3 | 2:9328053b2ba7 | 63 | lcd.drawRect(60,33,16,3,0); /// is set over the bottom rectangles |
sjaffal3 | 2:9328053b2ba7 | 64 | |
sjaffal3 | 2:9328053b2ba7 | 65 | lcd.drawCircle(68,40,2,0); /// circle is set on bottom middle box |
sjaffal3 | 2:9328053b2ba7 | 66 | |
sjaffal3 | 2:9328053b2ba7 | 67 | lcd.drawRect(61,26,14,7,0);///big middle box is set over everything |
sjaffal3 | 2:9328053b2ba7 | 68 | |
sjaffal3 | 2:9328053b2ba7 | 69 | lcd.drawRect(63,27,10,0.5,1);///top black rectangle is set |
sjaffal3 | 2:9328053b2ba7 | 70 | |
sjaffal3 | 2:9328053b2ba7 | 71 | lcd.drawRect(64.5,28,1,0.5,1);///left middle black rect is set |
sjaffal3 | 2:9328053b2ba7 | 72 | lcd.drawRect(67.5,28,1,0.5,1);///middle black rect is set |
sjaffal3 | 2:9328053b2ba7 | 73 | lcd.drawRect(70,28,1,0.5,1);///right middle black rect is set |
sjaffal3 | 2:9328053b2ba7 | 74 | lcd.drawRect(64.5,28,0.5,3.5,1);///left bottom black rect is set |
sjaffal3 | 2:9328053b2ba7 | 75 | lcd.drawRect(67.5,28,0.5,3.5,1);///middle bottom black rect is set |
sjaffal3 | 2:9328053b2ba7 | 76 | lcd.drawRect(70,28,0.5,3.5,1);///right bottom black rect is set |
sjaffal3 | 2:9328053b2ba7 | 77 | |
sjaffal3 | 2:9328053b2ba7 | 78 | lcd.drawRect(62,21,12,5,0);///rectangle is set over big middle box |
sjaffal3 | 2:9328053b2ba7 | 79 | |
sjaffal3 | 2:9328053b2ba7 | 80 | lcd.drawRect(66,22,0.5,0.5,1);///left top black rect is set |
sjaffal3 | 2:9328053b2ba7 | 81 | lcd.drawRect(68,22,0.5,0.5,1);///top black rect is set |
sjaffal3 | 2:9328053b2ba7 | 82 | lcd.drawRect(70,22,0.5,0.5,1);///right top black rect is set |
sjaffal3 | 2:9328053b2ba7 | 83 | lcd.drawRect(66,22,0.5,2,1);///left bottom black rect is set |
sjaffal3 | 2:9328053b2ba7 | 84 | lcd.drawRect(68,22,0.5,2,1);///middle bottom black rect is set |
sjaffal3 | 2:9328053b2ba7 | 85 | lcd.drawRect(70,22,0.5,2,1);///right bottom black rect is set |
sjaffal3 | 2:9328053b2ba7 | 86 | |
sjaffal3 | 2:9328053b2ba7 | 87 | lcd.drawRect(64,17,8,4,0);///rectangle under triangle is set |
sjaffal3 | 2:9328053b2ba7 | 88 | |
sjaffal3 | 2:9328053b2ba7 | 89 | lcd.drawLine(64,17,68,13.5,1);///left line to complete triangle |
sjaffal3 | 2:9328053b2ba7 | 90 | |
sjaffal3 | 2:9328053b2ba7 | 91 | lcd.drawLine(72,17,68,13.5,1);///right line to complete triangle |
sjaffal3 | 2:9328053b2ba7 | 92 | |
sjaffal3 | 2:9328053b2ba7 | 93 | |
sjaffal3 | 2:9328053b2ba7 | 94 | |
sjaffal3 | 2:9328053b2ba7 | 95 | lcd.clearPixel(65, 36); ///clears intersecting lines from rectangle |
sjaffal3 | 2:9328053b2ba7 | 96 | lcd.clearPixel(66, 36); |
sjaffal3 | 2:9328053b2ba7 | 97 | lcd.clearPixel(67, 36); |
sjaffal3 | 2:9328053b2ba7 | 98 | lcd.clearPixel(68, 36); |
sjaffal3 | 2:9328053b2ba7 | 99 | lcd.clearPixel(69, 36); |
sjaffal3 | 2:9328053b2ba7 | 100 | lcd.clearPixel(70, 36); |
sjaffal3 | 2:9328053b2ba7 | 101 | lcd.clearPixel(71, 36); |
sjaffal3 | 2:9328053b2ba7 | 102 | |
sjaffal3 | 2:9328053b2ba7 | 103 | lcd.refresh(); |
sjaffal3 | 2:9328053b2ba7 | 104 | |
sjaffal3 | 2:9328053b2ba7 | 105 | |
sjaffal3 | 2:9328053b2ba7 | 106 | |
sjaffal3 | 2:9328053b2ba7 | 107 | wait(3.0); |
sjaffal3 | 2:9328053b2ba7 | 108 | lcd.clear(); |
sjaffal3 | 2:9328053b2ba7 | 109 | |
sjaffal3 | 2:9328053b2ba7 | 110 | |
sjaffal3 | 2:9328053b2ba7 | 111 | |
sjaffal3 | 2:9328053b2ba7 | 112 | lcd.printString("Saleh Jaffal",8,2); |
sjaffal3 | 2:9328053b2ba7 | 113 | lcd.printString("200911007",15,3); |
sjaffal3 | 2:9328053b2ba7 | 114 | |
sjaffal3 | 2:9328053b2ba7 | 115 | lcd.refresh(); |
sjaffal3 | 2:9328053b2ba7 | 116 | |
sjaffal3 | 2:9328053b2ba7 | 117 | lcd.drawRect(6,12,73,21,0); |
sjaffal3 | 2:9328053b2ba7 | 118 | lcd.drawRect(4,10,77,25,0); |
sjaffal3 | 2:9328053b2ba7 | 119 | |
sjaffal3 | 2:9328053b2ba7 | 120 | lcd.refresh(); |
sjaffal3 | 2:9328053b2ba7 | 121 | |
sjaffal3 | 2:9328053b2ba7 | 122 | |
sjaffal3 | 2:9328053b2ba7 | 123 | |
sjaffal3 | 2:9328053b2ba7 | 124 | getDistanceCm(); ///gets the distance after the message |
sjaffal3 | 1:475a5b7258fa | 125 | getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 126 | getDistanceUs(); |
sjaffal3 | 2:9328053b2ba7 | 127 | |
sjaffal3 | 2:9328053b2ba7 | 128 | |
sjaffal3 | 2:9328053b2ba7 | 129 | |
sjaffal3 | 0:be8f580f1b5b | 130 | } |
sjaffal3 | 0:be8f580f1b5b | 131 | |
sjaffal3 | 1:475a5b7258fa | 132 | void getDistanceCm() |
sjaffal3 | 0:be8f580f1b5b | 133 | { |
sjaffal3 | 1:475a5b7258fa | 134 | |
sjaffal3 | 2:9328053b2ba7 | 135 | distance1 = sensor.getDistanceCm(); ///adds up 10 distances read by the sensor |
sjaffal3 | 2:9328053b2ba7 | 136 | distance2 = sensor.getDistanceCm(); ///there is a 70 ms delay between each reading |
sjaffal3 | 1:475a5b7258fa | 137 | distance3 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 138 | distance4 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 139 | distance5 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 140 | distance6 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 141 | distance7 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 142 | distance8 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 143 | distance9 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 144 | distance10 = sensor.getDistanceCm(); |
sjaffal3 | 1:475a5b7258fa | 145 | |
sjaffal3 | 1:475a5b7258fa | 146 | sum = distance1+distance2+distance3+distance4+distance5+distance6+distance7+distance8+distance9+distance10; |
sjaffal3 | 2:9328053b2ba7 | 147 | ///all of them are added to the sum |
sjaffal3 | 1:475a5b7258fa | 148 | |
sjaffal3 | 2:9328053b2ba7 | 149 | distanceCm = sum/10; ///the sum is divided by 10 to get the average |
sjaffal3 | 1:475a5b7258fa | 150 | } |
sjaffal3 | 1:475a5b7258fa | 151 | |
sjaffal3 | 1:475a5b7258fa | 152 | |
sjaffal3 | 1:475a5b7258fa | 153 | |
sjaffal3 | 1:475a5b7258fa | 154 | |
sjaffal3 | 1:475a5b7258fa | 155 | |
sjaffal3 | 1:475a5b7258fa | 156 | |
sjaffal3 | 1:475a5b7258fa | 157 | |
sjaffal3 | 1:475a5b7258fa | 158 | void getDistanceIn() |
sjaffal3 | 1:475a5b7258fa | 159 | { |
sjaffal3 | 2:9328053b2ba7 | 160 | distance1 = sensor.getDistanceIn(); ///adds up 10 distances read by the sensor |
sjaffal3 | 2:9328053b2ba7 | 161 | distance2 = sensor.getDistanceIn(); ///there is a 70 ms delay between each reading |
sjaffal3 | 1:475a5b7258fa | 162 | distance3 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 163 | distance4 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 164 | distance5 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 165 | distance6 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 166 | distance7 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 167 | distance8 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 168 | distance9 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 169 | distance10 = sensor.getDistanceIn(); |
sjaffal3 | 1:475a5b7258fa | 170 | |
sjaffal3 | 1:475a5b7258fa | 171 | |
sjaffal3 | 1:475a5b7258fa | 172 | sum = distance1+distance2+distance3+distance4+distance5+distance6+distance7+distance8+distance9+distance10; |
sjaffal3 | 2:9328053b2ba7 | 173 | ///all of them are added to the sum |
sjaffal3 | 2:9328053b2ba7 | 174 | |
sjaffal3 | 2:9328053b2ba7 | 175 | distanceIn = sum/10; ///the sum is divided by 10 to get the average |
sjaffal3 | 1:475a5b7258fa | 176 | } |
sjaffal3 | 1:475a5b7258fa | 177 | |
sjaffal3 | 1:475a5b7258fa | 178 | |
sjaffal3 | 1:475a5b7258fa | 179 | |
sjaffal3 | 1:475a5b7258fa | 180 | void getDistanceUs() |
sjaffal3 | 1:475a5b7258fa | 181 | { |
sjaffal3 | 2:9328053b2ba7 | 182 | distance1 = sensor.getDistanceUs(); ///adds up 10 distances read by the sensor |
sjaffal3 | 2:9328053b2ba7 | 183 | distance2 = sensor.getDistanceUs(); ///there is a 70 ms delay between each reading |
sjaffal3 | 1:475a5b7258fa | 184 | distance3 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 185 | distance4 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 186 | distance5 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 187 | distance6 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 188 | distance7 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 189 | distance8 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 190 | distance9 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 191 | distance10 = sensor.getDistanceUs(); |
sjaffal3 | 1:475a5b7258fa | 192 | |
sjaffal3 | 1:475a5b7258fa | 193 | |
sjaffal3 | 1:475a5b7258fa | 194 | sum = distance1+distance2+distance3+distance4+distance5+distance6+distance7+distance8+distance9+distance10; |
sjaffal3 | 2:9328053b2ba7 | 195 | ///all of them are added to the sum |
sjaffal3 | 1:475a5b7258fa | 196 | |
sjaffal3 | 2:9328053b2ba7 | 197 | distanceUs = sum/10; ///the sum is divided by 10 to get the average |
sjaffal3 | 1:475a5b7258fa | 198 | |
sjaffal3 | 1:475a5b7258fa | 199 | |
sjaffal3 | 0:be8f580f1b5b | 200 | } |
sjaffal3 | 0:be8f580f1b5b | 201 | |
sjaffal3 | 2:9328053b2ba7 | 202 | void compDist() ///used to compare the distances |
sjaffal3 | 2:9328053b2ba7 | 203 | { |
sjaffal3 | 2:9328053b2ba7 | 204 | |
sjaffal3 | 2:9328053b2ba7 | 205 | switch (i) |
sjaffal3 | 2:9328053b2ba7 | 206 | { |
sjaffal3 | 2:9328053b2ba7 | 207 | |
sjaffal3 | 2:9328053b2ba7 | 208 | case 0: |
sjaffal3 | 2:9328053b2ba7 | 209 | { |
sjaffal3 | 2:9328053b2ba7 | 210 | getDistanceCm(); |
sjaffal3 | 2:9328053b2ba7 | 211 | ///calls this action to show the reading |
sjaffal3 | 2:9328053b2ba7 | 212 | char buffer[14]; |
sjaffal3 | 2:9328053b2ba7 | 213 | /// each character is 6 pixels wide, screen is 84 pixels (84/6 = 14) |
sjaffal3 | 2:9328053b2ba7 | 214 | int length = sprintf(buffer," %d cm",distanceCm); |
sjaffal3 | 2:9328053b2ba7 | 215 | /// print formatted data to buffer |
sjaffal3 | 2:9328053b2ba7 | 216 | if(length<=14); |
sjaffal3 | 2:9328053b2ba7 | 217 | /// if string will fit on display |
sjaffal3 | 2:9328053b2ba7 | 218 | |
sjaffal3 | 2:9328053b2ba7 | 219 | lcd.clear(); /// clears LCD |
sjaffal3 | 2:9328053b2ba7 | 220 | lcd.drawRect(6,12,73,21,0);///sets 2 rectangles |
sjaffal3 | 2:9328053b2ba7 | 221 | lcd.drawRect(4,10,77,25,0); |
sjaffal3 | 2:9328053b2ba7 | 222 | lcd.printString("Distance =",8,2);///prints distance and the reading below it |
sjaffal3 | 2:9328053b2ba7 | 223 | lcd.printString(buffer,8,3); |
sjaffal3 | 2:9328053b2ba7 | 224 | |
sjaffal3 | 2:9328053b2ba7 | 225 | lcd.refresh(); ///refreshes LCD screen |
sjaffal3 | 2:9328053b2ba7 | 226 | |
sjaffal3 | 2:9328053b2ba7 | 227 | |
sjaffal3 | 2:9328053b2ba7 | 228 | |
sjaffal3 | 2:9328053b2ba7 | 229 | ///compares distances and sets them in their specified range |
sjaffal3 | 2:9328053b2ba7 | 230 | if (distanceCm >= 100) { |
sjaffal3 | 2:9328053b2ba7 | 231 | A=0; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 232 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 233 | } |
sjaffal3 | 2:9328053b2ba7 | 234 | else if (distanceCm >= 80 && distanceCm <= 99) { |
sjaffal3 | 2:9328053b2ba7 | 235 | A=1; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 236 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 237 | } |
sjaffal3 | 2:9328053b2ba7 | 238 | else if (distanceCm >= 60 && distanceCm <= 79) { |
sjaffal3 | 2:9328053b2ba7 | 239 | A=2; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 240 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 241 | } |
sjaffal3 | 2:9328053b2ba7 | 242 | else if (distanceCm >= 40 && distanceCm <= 59) { |
sjaffal3 | 2:9328053b2ba7 | 243 | A=3; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 244 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 245 | } |
sjaffal3 | 2:9328053b2ba7 | 246 | else if (distanceCm >= 20 && distanceCm <=39 ) { |
sjaffal3 | 2:9328053b2ba7 | 247 | A=4; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 248 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 249 | } |
sjaffal3 | 2:9328053b2ba7 | 250 | else { |
sjaffal3 | 2:9328053b2ba7 | 251 | A=5; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 252 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 253 | } |
sjaffal3 | 1:475a5b7258fa | 254 | |
sjaffal3 | 2:9328053b2ba7 | 255 | } |
sjaffal3 | 2:9328053b2ba7 | 256 | break; |
sjaffal3 | 2:9328053b2ba7 | 257 | |
sjaffal3 | 2:9328053b2ba7 | 258 | case (1): |
sjaffal3 | 2:9328053b2ba7 | 259 | { |
sjaffal3 | 1:475a5b7258fa | 260 | |
sjaffal3 | 2:9328053b2ba7 | 261 | getDistanceIn(); |
sjaffal3 | 2:9328053b2ba7 | 262 | ///calls this action to show the reading |
sjaffal3 | 2:9328053b2ba7 | 263 | char buffer[14]; |
sjaffal3 | 2:9328053b2ba7 | 264 | /// each character is 6 pixels wide, screen is 84 pixels (84/6 = 14) |
sjaffal3 | 2:9328053b2ba7 | 265 | int length = sprintf(buffer," %d in",distanceIn); |
sjaffal3 | 2:9328053b2ba7 | 266 | /// print formatted data to buffer |
sjaffal3 | 2:9328053b2ba7 | 267 | if(length<=14); |
sjaffal3 | 2:9328053b2ba7 | 268 | /// if string will fit on display |
sjaffal3 | 2:9328053b2ba7 | 269 | |
sjaffal3 | 2:9328053b2ba7 | 270 | lcd.clear(); /// clears LCD |
sjaffal3 | 2:9328053b2ba7 | 271 | lcd.drawRect(6,12,73,21,0);/// sets 2 rectangles |
sjaffal3 | 2:9328053b2ba7 | 272 | lcd.drawRect(4,10,77,25,0); |
sjaffal3 | 2:9328053b2ba7 | 273 | lcd.printString("Distance =",8,2);/// prints distance and the reading below it |
sjaffal3 | 2:9328053b2ba7 | 274 | lcd.printString(buffer,8,3); |
sjaffal3 | 2:9328053b2ba7 | 275 | |
sjaffal3 | 2:9328053b2ba7 | 276 | lcd.refresh(); /// refreshes LCD screen |
sjaffal3 | 2:9328053b2ba7 | 277 | |
sjaffal3 | 2:9328053b2ba7 | 278 | ///compares distances and sets them in their specified range |
sjaffal3 | 1:475a5b7258fa | 279 | |
sjaffal3 | 2:9328053b2ba7 | 280 | if (distanceIn >= 40) { |
sjaffal3 | 2:9328053b2ba7 | 281 | A=0; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 282 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 283 | } |
sjaffal3 | 2:9328053b2ba7 | 284 | else if (distanceIn >= 32 && distanceIn <= 39) { |
sjaffal3 | 2:9328053b2ba7 | 285 | A=1; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 286 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 287 | } |
sjaffal3 | 2:9328053b2ba7 | 288 | else if (distanceIn >= 24 && distanceIn <= 31) { |
sjaffal3 | 2:9328053b2ba7 | 289 | A=2; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 290 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 291 | } |
sjaffal3 | 2:9328053b2ba7 | 292 | else if (distanceIn >= 16 && distanceIn <= 23) { |
sjaffal3 | 2:9328053b2ba7 | 293 | A=3; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 294 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 295 | } |
sjaffal3 | 2:9328053b2ba7 | 296 | else if (distanceIn >= 8 && distanceIn <=15 ) { |
sjaffal3 | 2:9328053b2ba7 | 297 | A=4; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 298 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 299 | } |
sjaffal3 | 2:9328053b2ba7 | 300 | else { |
sjaffal3 | 2:9328053b2ba7 | 301 | A=5; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 302 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 303 | } |
sjaffal3 | 2:9328053b2ba7 | 304 | } |
sjaffal3 | 2:9328053b2ba7 | 305 | break; |
sjaffal3 | 2:9328053b2ba7 | 306 | |
sjaffal3 | 2:9328053b2ba7 | 307 | case(2): |
sjaffal3 | 2:9328053b2ba7 | 308 | { |
sjaffal3 | 2:9328053b2ba7 | 309 | getDistanceUs(); |
sjaffal3 | 2:9328053b2ba7 | 310 | ///calls this action to show the reading |
sjaffal3 | 2:9328053b2ba7 | 311 | char buffer[14]; |
sjaffal3 | 2:9328053b2ba7 | 312 | /// each character is 6 pixels wide, screen is 84 pixels (84/6 = 14) |
sjaffal3 | 2:9328053b2ba7 | 313 | int length = sprintf(buffer," %d us",distanceUs); |
sjaffal3 | 2:9328053b2ba7 | 314 | /// print formatted data to buffer |
sjaffal3 | 2:9328053b2ba7 | 315 | if(length<=14); |
sjaffal3 | 2:9328053b2ba7 | 316 | /// if string will fit on display |
sjaffal3 | 2:9328053b2ba7 | 317 | |
sjaffal3 | 2:9328053b2ba7 | 318 | lcd.clear(); /// clears LCD |
sjaffal3 | 2:9328053b2ba7 | 319 | lcd.drawRect(6,12,73,21,0);/// sets 2 rectangles |
sjaffal3 | 2:9328053b2ba7 | 320 | lcd.drawRect(4,10,77,25,0); |
sjaffal3 | 2:9328053b2ba7 | 321 | lcd.printString("Distance =",8,2);/// prints distance and the reading below it |
sjaffal3 | 2:9328053b2ba7 | 322 | lcd.printString(buffer,8,3); |
sjaffal3 | 2:9328053b2ba7 | 323 | |
sjaffal3 | 2:9328053b2ba7 | 324 | lcd.refresh(); /// refreshes LCD screen |
sjaffal3 | 2:9328053b2ba7 | 325 | |
sjaffal3 | 2:9328053b2ba7 | 326 | |
sjaffal3 | 2:9328053b2ba7 | 327 | ///compares distances and sets them in their specified range |
sjaffal3 | 1:475a5b7258fa | 328 | |
sjaffal3 | 2:9328053b2ba7 | 329 | if (distanceUs >= 5900) { |
sjaffal3 | 2:9328053b2ba7 | 330 | A=0; ///sets case |
sjaffal3 | 2:9328053b2ba7 | 331 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 332 | } |
sjaffal3 | 2:9328053b2ba7 | 333 | else if (distanceUs >= 4680 && distanceUs <= 5899) { |
sjaffal3 | 2:9328053b2ba7 | 334 | A=1;///sets case |
sjaffal3 | 2:9328053b2ba7 | 335 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 336 | } |
sjaffal3 | 2:9328053b2ba7 | 337 | else if (distanceUs >= 3400 && distanceUs <= 4679) { |
sjaffal3 | 2:9328053b2ba7 | 338 | A=2;///sets case |
sjaffal3 | 2:9328053b2ba7 | 339 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 340 | } |
sjaffal3 | 2:9328053b2ba7 | 341 | else if (distanceUs >= 2430 && distanceUs <= 3339) { |
sjaffal3 | 2:9328053b2ba7 | 342 | A=3;///sets case |
sjaffal3 | 2:9328053b2ba7 | 343 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 344 | } |
sjaffal3 | 2:9328053b2ba7 | 345 | else if (distanceUs >= 1220 && distanceUs <=2429 ) { |
sjaffal3 | 2:9328053b2ba7 | 346 | A=4;///sets case |
sjaffal3 | 2:9328053b2ba7 | 347 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 348 | } |
sjaffal3 | 2:9328053b2ba7 | 349 | else { |
sjaffal3 | 2:9328053b2ba7 | 350 | A=5;///sets case |
sjaffal3 | 2:9328053b2ba7 | 351 | distanceA(); |
sjaffal3 | 2:9328053b2ba7 | 352 | } |
sjaffal3 | 2:9328053b2ba7 | 353 | |
sjaffal3 | 2:9328053b2ba7 | 354 | } |
sjaffal3 | 2:9328053b2ba7 | 355 | break; |
sjaffal3 | 2:9328053b2ba7 | 356 | |
sjaffal3 | 2:9328053b2ba7 | 357 | |
sjaffal3 | 2:9328053b2ba7 | 358 | |
sjaffal3 | 2:9328053b2ba7 | 359 | } |
sjaffal3 | 2:9328053b2ba7 | 360 | } |
sjaffal3 | 2:9328053b2ba7 | 361 | |
sjaffal3 | 2:9328053b2ba7 | 362 | void distanceA() //sets leds and buzzer for each case |
sjaffal3 | 1:475a5b7258fa | 363 | { |
sjaffal3 | 2:9328053b2ba7 | 364 | switch (A){ |
sjaffal3 | 2:9328053b2ba7 | 365 | |
sjaffal3 | 2:9328053b2ba7 | 366 | case(0): |
sjaffal3 | 2:9328053b2ba7 | 367 | { //case 0 would have 1 LED on |
sjaffal3 | 1:475a5b7258fa | 368 | green1=1; |
sjaffal3 | 1:475a5b7258fa | 369 | green2=0; |
sjaffal3 | 1:475a5b7258fa | 370 | yellow1=0; |
sjaffal3 | 1:475a5b7258fa | 371 | yellow2=0; |
sjaffal3 | 1:475a5b7258fa | 372 | red1=0; |
sjaffal3 | 1:475a5b7258fa | 373 | red2=0; |
sjaffal3 | 2:9328053b2ba7 | 374 | lcd.printString("Out of range",0,0); |
sjaffal3 | 2:9328053b2ba7 | 375 | buzzer.beep(2000, 0.1); ///@see This code was from a library I found |
sjaffal3 | 2:9328053b2ba7 | 376 | |
sjaffal3 | 1:475a5b7258fa | 377 | |
sjaffal3 | 2:9328053b2ba7 | 378 | } |
sjaffal3 | 2:9328053b2ba7 | 379 | break; |
sjaffal3 | 2:9328053b2ba7 | 380 | |
sjaffal3 | 2:9328053b2ba7 | 381 | case(1): |
sjaffal3 | 2:9328053b2ba7 | 382 | { ///case 1 would have 2 LED's on |
sjaffal3 | 1:475a5b7258fa | 383 | green1=1; |
sjaffal3 | 1:475a5b7258fa | 384 | green2=1; |
sjaffal3 | 1:475a5b7258fa | 385 | yellow1=0; |
sjaffal3 | 1:475a5b7258fa | 386 | yellow2=0; |
sjaffal3 | 1:475a5b7258fa | 387 | red1=0; |
sjaffal3 | 1:475a5b7258fa | 388 | red2=0; |
sjaffal3 | 2:9328053b2ba7 | 389 | lcd.printString("In range",0,0); |
sjaffal3 | 2:9328053b2ba7 | 390 | buzzer.beep(2000, 0.1); ///@see This code was from a library I found |
sjaffal3 | 1:475a5b7258fa | 391 | } |
sjaffal3 | 2:9328053b2ba7 | 392 | break; |
sjaffal3 | 1:475a5b7258fa | 393 | |
sjaffal3 | 2:9328053b2ba7 | 394 | case(2): |
sjaffal3 | 2:9328053b2ba7 | 395 | { //green1=1; ///case 2 would have 3 LED's on |
sjaffal3 | 1:475a5b7258fa | 396 | green2=1; |
sjaffal3 | 1:475a5b7258fa | 397 | yellow1=1; |
sjaffal3 | 1:475a5b7258fa | 398 | yellow2=0; |
sjaffal3 | 1:475a5b7258fa | 399 | red1=0; |
sjaffal3 | 1:475a5b7258fa | 400 | red2=0; |
sjaffal3 | 2:9328053b2ba7 | 401 | lcd.printString("Take Care!",0,0); |
sjaffal3 | 2:9328053b2ba7 | 402 | buzzer.beep(2000, 0.2); |
sjaffal3 | 1:475a5b7258fa | 403 | } |
sjaffal3 | 2:9328053b2ba7 | 404 | break; |
sjaffal3 | 1:475a5b7258fa | 405 | |
sjaffal3 | 2:9328053b2ba7 | 406 | case(3): |
sjaffal3 | 1:475a5b7258fa | 407 | { |
sjaffal3 | 2:9328053b2ba7 | 408 | green1=1; ///case 3 would have 4 LED's on |
sjaffal3 | 1:475a5b7258fa | 409 | green2=1; |
sjaffal3 | 1:475a5b7258fa | 410 | yellow1=1; |
sjaffal3 | 1:475a5b7258fa | 411 | yellow2=1; |
sjaffal3 | 1:475a5b7258fa | 412 | red1=0; |
sjaffal3 | 1:475a5b7258fa | 413 | red2=0; |
sjaffal3 | 2:9328053b2ba7 | 414 | lcd.printString("Closer!",0,0); |
sjaffal3 | 2:9328053b2ba7 | 415 | buzzer.beep(2000, 0.2); ///@see This code was from a library I found |
sjaffal3 | 1:475a5b7258fa | 416 | } |
sjaffal3 | 2:9328053b2ba7 | 417 | break; |
sjaffal3 | 1:475a5b7258fa | 418 | |
sjaffal3 | 2:9328053b2ba7 | 419 | case(4): |
sjaffal3 | 1:475a5b7258fa | 420 | { |
sjaffal3 | 2:9328053b2ba7 | 421 | green1=1; ///case 4 would have 5 LED's on |
sjaffal3 | 1:475a5b7258fa | 422 | green2=1; |
sjaffal3 | 1:475a5b7258fa | 423 | yellow1=1; |
sjaffal3 | 1:475a5b7258fa | 424 | yellow2=1; |
sjaffal3 | 1:475a5b7258fa | 425 | red1=1; |
sjaffal3 | 1:475a5b7258fa | 426 | red2=0; |
sjaffal3 | 2:9328053b2ba7 | 427 | lcd.printString("VERY CLOSE!",0,0); |
sjaffal3 | 2:9328053b2ba7 | 428 | buzzer.beep(2000, 0.4); ///@see This code was from a library I found |
sjaffal3 | 0:be8f580f1b5b | 429 | } |
sjaffal3 | 2:9328053b2ba7 | 430 | break; |
sjaffal3 | 0:be8f580f1b5b | 431 | |
sjaffal3 | 2:9328053b2ba7 | 432 | case(5): |
sjaffal3 | 0:be8f580f1b5b | 433 | { |
sjaffal3 | 2:9328053b2ba7 | 434 | green1=1; ///case 5 would have 6 LED's on |
sjaffal3 | 1:475a5b7258fa | 435 | green2=1; |
sjaffal3 | 1:475a5b7258fa | 436 | yellow1=1; |
sjaffal3 | 1:475a5b7258fa | 437 | yellow2=1; |
sjaffal3 | 1:475a5b7258fa | 438 | red1=1; |
sjaffal3 | 1:475a5b7258fa | 439 | red2=1; |
sjaffal3 | 2:9328053b2ba7 | 440 | lcd.printString("WATCH OUT!",0,0); |
sjaffal3 | 2:9328053b2ba7 | 441 | buzzer.beep(2000, 1.2); ///@see This code was from a library I found |
sjaffal3 | 0:be8f580f1b5b | 442 | } |
sjaffal3 | 2:9328053b2ba7 | 443 | break; |
sjaffal3 | 2:9328053b2ba7 | 444 | }} |