Super Sensor

Dependencies:   N5110 PowerControl SRF02 beep mbed

Committer:
MuhaiminMokhtar
Date:
Mon May 11 22:12:11 2015 +0000
Revision:
0:933481fda425
First commit.; ; All is working fine

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MuhaiminMokhtar 0:933481fda425 1 /**
MuhaiminMokhtar 0:933481fda425 2 @file main.h
MuhaiminMokhtar 0:933481fda425 3 @brief Header file containing functions prototypes, define and global variables
MuhaiminMokhtar 0:933481fda425 4 @brief coding for embedded device (Project A - Reverse Sensor)
MuhaiminMokhtar 0:933481fda425 5 @brief ELEC 2645
MuhaiminMokhtar 0:933481fda425 6 @brief 200906557
MuhaiminMokhtar 0:933481fda425 7 @author Muhammad Muhaimin Mokhtar
MuhaiminMokhtar 0:933481fda425 8 @date May 2015
MuhaiminMokhtar 0:933481fda425 9 */
MuhaiminMokhtar 0:933481fda425 10
MuhaiminMokhtar 0:933481fda425 11 //L I B R A R I E S
MuhaiminMokhtar 0:933481fda425 12 #include "mbed.h"
MuhaiminMokhtar 0:933481fda425 13 #include "N5110.h"//Imported from Dr. Craig A. Evans library
MuhaiminMokhtar 0:933481fda425 14 #include "SRF02.h"//Imported from Dr. Craig A. Evans library
MuhaiminMokhtar 0:933481fda425 15 #include "beep.h" //Imported from Peter Descher library, , Files at revision 4:d8e14429a95f
MuhaiminMokhtar 0:933481fda425 16 #include "PowerControl/PowerControl.h" //Imported from Michael Wei's library
MuhaiminMokhtar 0:933481fda425 17 #include "PowerControl/EthernetPowerControl.h"// Imported from Michael Wei's library
MuhaiminMokhtar 0:933481fda425 18
MuhaiminMokhtar 0:933481fda425 19 //P I N S
MuhaiminMokhtar 0:933481fda425 20
MuhaiminMokhtar 0:933481fda425 21 /**
MuhaiminMokhtar 0:933481fda425 22 @namespace N511o lcd
MuhaiminMokhtar 0:933481fda425 23 @brief GPIO pins connected to LCD Display
MuhaiminMokhtar 0:933481fda425 24 @brief (LCD_VCC,SCE,RST,DC,MOSI,SCK,BACKLIGHT)
MuhaiminMokhtar 0:933481fda425 25 */
MuhaiminMokhtar 0:933481fda425 26 N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
MuhaiminMokhtar 0:933481fda425 27 /**
MuhaiminMokhtar 0:933481fda425 28 @namespace sensor
MuhaiminMokhtar 0:933481fda425 29 @brief GPIO pins for SRF02 sensor
MuhaiminMokhtar 0:933481fda425 30 @brief (SDA,SCL)
MuhaiminMokhtar 0:933481fda425 31 */
MuhaiminMokhtar 0:933481fda425 32 SRF02 sensor(p28,p27);
MuhaiminMokhtar 0:933481fda425 33 /**
MuhaiminMokhtar 0:933481fda425 34 @namespace red
MuhaiminMokhtar 0:933481fda425 35 @brief PWM pin for red led
MuhaiminMokhtar 0:933481fda425 36 */
MuhaiminMokhtar 0:933481fda425 37 PwmOut red(p22);
MuhaiminMokhtar 0:933481fda425 38 /**
MuhaiminMokhtar 0:933481fda425 39 @namespace yellow
MuhaiminMokhtar 0:933481fda425 40 @brief PWM pin for yellow led
MuhaiminMokhtar 0:933481fda425 41 */
MuhaiminMokhtar 0:933481fda425 42 PwmOut yellow(p23);
MuhaiminMokhtar 0:933481fda425 43 /**
MuhaiminMokhtar 0:933481fda425 44 @namespace green
MuhaiminMokhtar 0:933481fda425 45 @brief PWM pin for green led
MuhaiminMokhtar 0:933481fda425 46 */
MuhaiminMokhtar 0:933481fda425 47 PwmOut green(p24);
MuhaiminMokhtar 0:933481fda425 48 /**
MuhaiminMokhtar 0:933481fda425 49 @namespace button
MuhaiminMokhtar 0:933481fda425 50 @brief InterruptIn pin for button
MuhaiminMokhtar 0:933481fda425 51 */
MuhaiminMokhtar 0:933481fda425 52 InterruptIn button(p15);
MuhaiminMokhtar 0:933481fda425 53 /**
MuhaiminMokhtar 0:933481fda425 54 @namespace buzzer
MuhaiminMokhtar 0:933481fda425 55 @brief PWM pin for buzzer
MuhaiminMokhtar 0:933481fda425 56 */
MuhaiminMokhtar 0:933481fda425 57 Beep buzzer(p21);
MuhaiminMokhtar 0:933481fda425 58 /**
MuhaiminMokhtar 0:933481fda425 59 @namespace lcdBrightness
MuhaiminMokhtar 0:933481fda425 60 @brief AnalogIn pin for LCD backlight
MuhaiminMokhtar 0:933481fda425 61 */
MuhaiminMokhtar 0:933481fda425 62 PwmOut lcdBrightness (p26);
MuhaiminMokhtar 0:933481fda425 63 /**
MuhaiminMokhtar 0:933481fda425 64 @namespace potBrightness
MuhaiminMokhtar 0:933481fda425 65 @brief AnalogIn pin for potentiometer
MuhaiminMokhtar 0:933481fda425 66 */
MuhaiminMokhtar 0:933481fda425 67 AnalogIn potBrightness (p20);
MuhaiminMokhtar 0:933481fda425 68
MuhaiminMokhtar 0:933481fda425 69 //V A R I A B L E S
MuhaiminMokhtar 0:933481fda425 70 int distance; /*!<distance between sensor and obstacles*/
MuhaiminMokhtar 0:933481fda425 71 int buttonFlag =0; /*!<print flag set in ISR (Interrupt Service Routine)*/
MuhaiminMokhtar 0:933481fda425 72 int setTimeFlag = 0; /*!<integer to display time on LCD*/
MuhaiminMokhtar 0:933481fda425 73 int displayReading = 0; /*!<integer to display measurement on LCD*/
MuhaiminMokhtar 0:933481fda425 74
MuhaiminMokhtar 0:933481fda425 75 //F U N C T I O N S
MuhaiminMokhtar 0:933481fda425 76
MuhaiminMokhtar 0:933481fda425 77 /** Print welcome message
MuhaiminMokhtar 0:933481fda425 78 * @param message - print 'WELCOME'
MuhaiminMokhtar 0:933481fda425 79 * @param a - set the coordinate for charachter to be print
MuhaiminMokhtar 0:933481fda425 80 * @param super - print 'SUPER SENSOR'
MuhaiminMokhtar 0:933481fda425 81 * @param mokh - print 'M.MOKH'
MuhaiminMokhtar 0:933481fda425 82 * @param number - print '200906557'
MuhaiminMokhtar 0:933481fda425 83 */
MuhaiminMokhtar 0:933481fda425 84 void welcomeMessage();
MuhaiminMokhtar 0:933481fda425 85
MuhaiminMokhtar 0:933481fda425 86 /** measure distance between sensor and obstacle
MuhaiminMokhtar 0:933481fda425 87 * @param distance - SRF02 measure distance
MuhaiminMokhtar 0:933481fda425 88 * @return value of measured distance in cm
MuhaiminMokhtar 0:933481fda425 89 */
MuhaiminMokhtar 0:933481fda425 90 void getDistance();
MuhaiminMokhtar 0:933481fda425 91
MuhaiminMokhtar 0:933481fda425 92 /** print car and obstacle figure
MuhaiminMokhtar 0:933481fda425 93 * @param lcd.drawRect - draw rectangle shape
MuhaiminMokhtar 0:933481fda425 94 * @param lcd.drawCircle - draw circle shape
MuhaiminMokhtar 0:933481fda425 95 * @param lcd.printString - print 'DANGER!!' in danger range
MuhaiminMokhtar 0:933481fda425 96 * @param lcd.refresh - refresh lcd display
MuhaiminMokhtar 0:933481fda425 97 * @param distanceGreen - green led on
MuhaiminMokhtar 0:933481fda425 98 * @param distanceYellow - yellow led on
MuhaiminMokhtar 0:933481fda425 99 * @param distanceRed - red led on
MuhaiminMokhtar 0:933481fda425 100 */
MuhaiminMokhtar 0:933481fda425 101 void readDistance();
MuhaiminMokhtar 0:933481fda425 102
MuhaiminMokhtar 0:933481fda425 103 /**
MuhaiminMokhtar 0:933481fda425 104 * distance measured in green range
MuhaiminMokhtar 0:933481fda425 105 * only green led lights up
MuhaiminMokhtar 0:933481fda425 106 * @param buzzer.beep - buzzer beeping at 1kHz every 1 second
MuhaiminMokhtar 0:933481fda425 107 * @param buzzer.nobeep - stop the buzzer instantaneous
MuhaiminMokhtar 0:933481fda425 108 * @param wait - wait for 1.5 seconds
MuhaiminMokhtar 0:933481fda425 109 */
MuhaiminMokhtar 0:933481fda425 110 void distanceGreen();
MuhaiminMokhtar 0:933481fda425 111
MuhaiminMokhtar 0:933481fda425 112 /**
MuhaiminMokhtar 0:933481fda425 113 * distance measured in yellow range
MuhaiminMokhtar 0:933481fda425 114 * only yellow led lights up
MuhaiminMokhtar 0:933481fda425 115 * @param buzzer.beep - buzzer beeping at 1kHz every 1 second
MuhaiminMokhtar 0:933481fda425 116 * @param buzzer.nobeep - stop the buzzer instantaneous
MuhaiminMokhtar 0:933481fda425 117 * @param wait - wait for 1.0 second
MuhaiminMokhtar 0:933481fda425 118 */
MuhaiminMokhtar 0:933481fda425 119 void distanceYellow();
MuhaiminMokhtar 0:933481fda425 120
MuhaiminMokhtar 0:933481fda425 121 /**
MuhaiminMokhtar 0:933481fda425 122 * distance measured in red range
MuhaiminMokhtar 0:933481fda425 123 * only red led lights up
MuhaiminMokhtar 0:933481fda425 124 * @param buzzer.beep - buzzer beeping at 1kHz every 1 second
MuhaiminMokhtar 0:933481fda425 125 * @param buzzer.nobeep - stop the buzzer instantaneous
MuhaiminMokhtar 0:933481fda425 126 * @param wait - wait for 0.5 second
MuhaiminMokhtar 0:933481fda425 127 */
MuhaiminMokhtar 0:933481fda425 128 void distanceRed();
MuhaiminMokhtar 0:933481fda425 129
MuhaiminMokhtar 0:933481fda425 130 /**
MuhaiminMokhtar 0:933481fda425 131 * distance measured in danger range
MuhaiminMokhtar 0:933481fda425 132 * only red led lights up
MuhaiminMokhtar 0:933481fda425 133 * @param buzzer.beep - buzzer beeping at 1kHz every 1 second
MuhaiminMokhtar 0:933481fda425 134 * @param buzzer.nobeep - stop the buzzer instantaneous
MuhaiminMokhtar 0:933481fda425 135 * @param wait - wait for 0.1 second
MuhaiminMokhtar 0:933481fda425 136 */
MuhaiminMokhtar 0:933481fda425 137 void distanceDanger();
MuhaiminMokhtar 0:933481fda425 138
MuhaiminMokhtar 0:933481fda425 139 /**
MuhaiminMokhtar 0:933481fda425 140 *interrupt service routine when button is pressed
MuhaiminMokhtar 0:933481fda425 141 * @param buttonFlag - button flag will be set to 1 on rising edge
MuhaiminMokhtar 0:933481fda425 142 *
MuhaiminMokhtar 0:933481fda425 143 */
MuhaiminMokhtar 0:933481fda425 144 void buttonPressed();
MuhaiminMokhtar 0:933481fda425 145
MuhaiminMokhtar 0:933481fda425 146 /**
MuhaiminMokhtar 0:933481fda425 147 * set time and date display on the lcd
MuhaiminMokhtar 0:933481fda425 148 * @param buffer - store current time
MuhaiminMokhtar 0:933481fda425 149 * @param date - store current date
MuhaiminMokhtar 0:933481fda425 150 * @param day - store current day
MuhaiminMokhtar 0:933481fda425 151 * @param lcd.printString - print date & time on lcd
MuhaiminMokhtar 0:933481fda425 152 */
MuhaiminMokhtar 0:933481fda425 153 void timeZone();
MuhaiminMokhtar 0:933481fda425 154
MuhaiminMokhtar 0:933481fda425 155 //print welcome message
MuhaiminMokhtar 0:933481fda425 156
MuhaiminMokhtar 0:933481fda425 157 void welcomeMessage()
MuhaiminMokhtar 0:933481fda425 158 {
MuhaiminMokhtar 0:933481fda425 159 int a[12] = {0,6,12,18,24,30,36,42,48,54,60,66}; // coordinate of character to be printed on
MuhaiminMokhtar 0:933481fda425 160 const char message[7] = {'W','E','L','C','O','M','E'};
MuhaiminMokhtar 0:933481fda425 161 char super[12] = {'S','U','P','E','R',' ','S','E','N','S','O','R'};
MuhaiminMokhtar 0:933481fda425 162 char mokh[9] = {'M','.','M','O','K','H','T','A','R'};
MuhaiminMokhtar 0:933481fda425 163 char number[9] = {'2','0','0','9','0','6','5','5','7'};
MuhaiminMokhtar 0:933481fda425 164 int i;
MuhaiminMokhtar 0:933481fda425 165 for(i=0; i<7; i++) {
MuhaiminMokhtar 0:933481fda425 166 lcd.printChar(message[i],a[i],0); // character is printed one at a time untill increment is satisfied
MuhaiminMokhtar 0:933481fda425 167 wait(0.1);
MuhaiminMokhtar 0:933481fda425 168 }
MuhaiminMokhtar 0:933481fda425 169 for(i=0; i<12; i++) {
MuhaiminMokhtar 0:933481fda425 170 lcd.printChar(super[i],a[i],2);
MuhaiminMokhtar 0:933481fda425 171 wait(0.1); // character is printed one at a time untill increment is satisfied
MuhaiminMokhtar 0:933481fda425 172 }
MuhaiminMokhtar 0:933481fda425 173 for(i=0; i<9; i++) {
MuhaiminMokhtar 0:933481fda425 174 lcd.printChar(mokh[i],a[i],4); // character is printed one at a time untill increment is satisfied
MuhaiminMokhtar 0:933481fda425 175 wait(0.1);
MuhaiminMokhtar 0:933481fda425 176 }
MuhaiminMokhtar 0:933481fda425 177 for(i=0; i<9; i++) {
MuhaiminMokhtar 0:933481fda425 178 lcd.printChar(number[i],a[i],5); // character is printed one at a time untill increment is satisfied
MuhaiminMokhtar 0:933481fda425 179 wait(0.1);
MuhaiminMokhtar 0:933481fda425 180 }
MuhaiminMokhtar 0:933481fda425 181 wait(4.0);
MuhaiminMokhtar 0:933481fda425 182 }
MuhaiminMokhtar 0:933481fda425 183
MuhaiminMokhtar 0:933481fda425 184 void getDistance()
MuhaiminMokhtar 0:933481fda425 185 {
MuhaiminMokhtar 0:933481fda425 186 distance = sensor.getDistanceCm();
MuhaiminMokhtar 0:933481fda425 187
MuhaiminMokhtar 0:933481fda425 188 }
MuhaiminMokhtar 0:933481fda425 189
MuhaiminMokhtar 0:933481fda425 190 void readDistance()
MuhaiminMokhtar 0:933481fda425 191 {
MuhaiminMokhtar 0:933481fda425 192 if(distance>=240) {
MuhaiminMokhtar 0:933481fda425 193 lcd.drawRect(0,0,7,48,1); //obstacle (wall)
MuhaiminMokhtar 0:933481fda425 194 lcd.drawRect(58,30,20,10,1); //rectangle 1(x,y,width,height,blackfill)
MuhaiminMokhtar 0:933481fda425 195 lcd.drawRect(63,22,10,8,1); //rectangle 2
MuhaiminMokhtar 0:933481fda425 196 lcd.drawCircle(63,44,4,1); //circle 1
MuhaiminMokhtar 0:933481fda425 197 lcd.drawCircle(73,44,4,1); //circle 2(x,y,radius,black fill)
MuhaiminMokhtar 0:933481fda425 198 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 199 distanceGreen();
MuhaiminMokhtar 0:933481fda425 200 } else if (distance >= 200 & distance <=239) {
MuhaiminMokhtar 0:933481fda425 201 lcd.drawRect(0,0,7,48,1);
MuhaiminMokhtar 0:933481fda425 202 lcd.drawRect(51,30,20,10,1);
MuhaiminMokhtar 0:933481fda425 203 lcd.drawRect(56,22,10,8,1);
MuhaiminMokhtar 0:933481fda425 204 lcd.drawCircle(56,44,4,1);
MuhaiminMokhtar 0:933481fda425 205 lcd.drawCircle(66,44,4,1);
MuhaiminMokhtar 0:933481fda425 206 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 207 distanceGreen();
MuhaiminMokhtar 0:933481fda425 208
MuhaiminMokhtar 0:933481fda425 209 } else if (distance >=160 & distance <=199) {
MuhaiminMokhtar 0:933481fda425 210 lcd.drawRect(0,0,7,48,1);
MuhaiminMokhtar 0:933481fda425 211 lcd.drawRect(44,30,20,10,1);
MuhaiminMokhtar 0:933481fda425 212 lcd.drawRect(49,22,10,8,1);
MuhaiminMokhtar 0:933481fda425 213 lcd.drawCircle(49,44,4,1);
MuhaiminMokhtar 0:933481fda425 214 lcd.drawCircle(59,44,4,1);
MuhaiminMokhtar 0:933481fda425 215 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 216 distanceGreen();
MuhaiminMokhtar 0:933481fda425 217 } else if (distance >=120 & distance <=159) {
MuhaiminMokhtar 0:933481fda425 218 lcd.drawRect(0,0,7,48,1);
MuhaiminMokhtar 0:933481fda425 219 lcd.drawRect(37,30,20,10,1);
MuhaiminMokhtar 0:933481fda425 220 lcd.drawRect(42,22,10,8,1);
MuhaiminMokhtar 0:933481fda425 221 lcd.drawCircle(42,44,4,1);
MuhaiminMokhtar 0:933481fda425 222 lcd.drawCircle(52,44,4,1);
MuhaiminMokhtar 0:933481fda425 223 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 224 distanceYellow();
MuhaiminMokhtar 0:933481fda425 225 } else if (distance >=80 & distance <=119) {
MuhaiminMokhtar 0:933481fda425 226 lcd.drawRect(0,0,7,48,1);
MuhaiminMokhtar 0:933481fda425 227 lcd.drawRect(30,30,20,10,1);
MuhaiminMokhtar 0:933481fda425 228 lcd.drawRect(35,22,10,8,1);
MuhaiminMokhtar 0:933481fda425 229 lcd.drawCircle(35,44,4,1);
MuhaiminMokhtar 0:933481fda425 230 lcd.drawCircle(45,44,4,1);
MuhaiminMokhtar 0:933481fda425 231 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 232 distanceYellow();
MuhaiminMokhtar 0:933481fda425 233 } else if (distance >=40 & distance <= 79) {
MuhaiminMokhtar 0:933481fda425 234 lcd.drawRect(0,0,7,48,1);
MuhaiminMokhtar 0:933481fda425 235 lcd.drawRect(23,30,20,10,1);
MuhaiminMokhtar 0:933481fda425 236 lcd.drawRect(28,22,10,8,1);
MuhaiminMokhtar 0:933481fda425 237 lcd.drawCircle(28,44,4,1);
MuhaiminMokhtar 0:933481fda425 238 lcd.drawCircle(38,44,4,1);
MuhaiminMokhtar 0:933481fda425 239 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 240 distanceYellow();
MuhaiminMokhtar 0:933481fda425 241 } else if (distance >=25 & distance <=39) {
MuhaiminMokhtar 0:933481fda425 242 lcd.drawRect(0,0,7,48,1);
MuhaiminMokhtar 0:933481fda425 243 lcd.drawRect(16,30,20,10,1);
MuhaiminMokhtar 0:933481fda425 244 lcd.drawRect(21,22,10,8,1);
MuhaiminMokhtar 0:933481fda425 245 lcd.drawCircle(21,44,4,1);
MuhaiminMokhtar 0:933481fda425 246 lcd.drawCircle(31,44,4,1);
MuhaiminMokhtar 0:933481fda425 247 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 248 distanceRed();
MuhaiminMokhtar 0:933481fda425 249 } else if (distance <=24) {
MuhaiminMokhtar 0:933481fda425 250 lcd.drawRect(0,0,7,48,1);
MuhaiminMokhtar 0:933481fda425 251 lcd.drawRect(9,30,20,10,1);
MuhaiminMokhtar 0:933481fda425 252 lcd.drawRect(14,22,10,8,1);
MuhaiminMokhtar 0:933481fda425 253 lcd.drawCircle(14,44,4,1);
MuhaiminMokhtar 0:933481fda425 254 lcd.drawCircle(24,44,4,1);
MuhaiminMokhtar 0:933481fda425 255 lcd.printString("DANGER!!",32,5); //'DANGER!!' is printed at par with car figure
MuhaiminMokhtar 0:933481fda425 256 lcd.refresh();
MuhaiminMokhtar 0:933481fda425 257 distanceDanger();
MuhaiminMokhtar 0:933481fda425 258
MuhaiminMokhtar 0:933481fda425 259
MuhaiminMokhtar 0:933481fda425 260 }
MuhaiminMokhtar 0:933481fda425 261 }
MuhaiminMokhtar 0:933481fda425 262
MuhaiminMokhtar 0:933481fda425 263 // car is in green range distance (safe)
MuhaiminMokhtar 0:933481fda425 264 void distanceGreen()
MuhaiminMokhtar 0:933481fda425 265 {
MuhaiminMokhtar 0:933481fda425 266 red = 0;
MuhaiminMokhtar 0:933481fda425 267 yellow = 0;
MuhaiminMokhtar 0:933481fda425 268 green = 1; //only green led is lights up
MuhaiminMokhtar 0:933481fda425 269 buzzer.beep(1000,1);
MuhaiminMokhtar 0:933481fda425 270 wait (1.5);
MuhaiminMokhtar 0:933481fda425 271 buzzer.nobeep();
MuhaiminMokhtar 0:933481fda425 272 }
MuhaiminMokhtar 0:933481fda425 273 //car is in yellow range distance (cautious)
MuhaiminMokhtar 0:933481fda425 274 void distanceYellow()
MuhaiminMokhtar 0:933481fda425 275 {
MuhaiminMokhtar 0:933481fda425 276 red = 0;
MuhaiminMokhtar 0:933481fda425 277 yellow = 1; //only yellow led is lights up
MuhaiminMokhtar 0:933481fda425 278 green = 0;
MuhaiminMokhtar 0:933481fda425 279 buzzer.beep(1000,1);
MuhaiminMokhtar 0:933481fda425 280 wait (1.0);
MuhaiminMokhtar 0:933481fda425 281 buzzer.nobeep();
MuhaiminMokhtar 0:933481fda425 282 }
MuhaiminMokhtar 0:933481fda425 283 //when car is in red ange distance (prepare to stop)
MuhaiminMokhtar 0:933481fda425 284 void distanceRed()
MuhaiminMokhtar 0:933481fda425 285 {
MuhaiminMokhtar 0:933481fda425 286 red = 1; //only red led is lights up
MuhaiminMokhtar 0:933481fda425 287 yellow = 0;
MuhaiminMokhtar 0:933481fda425 288 green = 0;
MuhaiminMokhtar 0:933481fda425 289 buzzer.beep(1000,1);
MuhaiminMokhtar 0:933481fda425 290 wait (0.5);
MuhaiminMokhtar 0:933481fda425 291 buzzer.nobeep();
MuhaiminMokhtar 0:933481fda425 292 }
MuhaiminMokhtar 0:933481fda425 293
MuhaiminMokhtar 0:933481fda425 294 //when car is in danger range distance (no longer safe to reverse)
MuhaiminMokhtar 0:933481fda425 295 void distanceDanger()
MuhaiminMokhtar 0:933481fda425 296 {
MuhaiminMokhtar 0:933481fda425 297 red = 1; // only red led is lights up
MuhaiminMokhtar 0:933481fda425 298 yellow = 0;
MuhaiminMokhtar 0:933481fda425 299 green = 0;
MuhaiminMokhtar 0:933481fda425 300 buzzer.beep(1000,1);
MuhaiminMokhtar 0:933481fda425 301 wait (0.1);
MuhaiminMokhtar 0:933481fda425 302 buzzer.nobeep();
MuhaiminMokhtar 0:933481fda425 303 }
MuhaiminMokhtar 0:933481fda425 304
MuhaiminMokhtar 0:933481fda425 305 void buttonPressed()
MuhaiminMokhtar 0:933481fda425 306 {
MuhaiminMokhtar 0:933481fda425 307 buttonFlag = 1; // interrupt service routine
MuhaiminMokhtar 0:933481fda425 308 }
MuhaiminMokhtar 0:933481fda425 309 //display and store time
MuhaiminMokhtar 0:933481fda425 310 void timeZone()
MuhaiminMokhtar 0:933481fda425 311 {
MuhaiminMokhtar 0:933481fda425 312
MuhaiminMokhtar 0:933481fda425 313 time_t seconds = time(NULL); // get current time
MuhaiminMokhtar 0:933481fda425 314 // format time into a string (time and date)
MuhaiminMokhtar 0:933481fda425 315 char buffer [30];
MuhaiminMokhtar 0:933481fda425 316 char date [30];
MuhaiminMokhtar 0:933481fda425 317 char day [30];
MuhaiminMokhtar 0:933481fda425 318 strftime(buffer, 30 , "%r ", localtime(&seconds));
MuhaiminMokhtar 0:933481fda425 319 strftime(date, 30, "%F", localtime(&seconds));
MuhaiminMokhtar 0:933481fda425 320 strftime (day, 30, "%A", localtime(&seconds));
MuhaiminMokhtar 0:933481fda425 321 // print over serial
MuhaiminMokhtar 0:933481fda425 322 lcd.printString (buffer,10,3);
MuhaiminMokhtar 0:933481fda425 323 lcd.printString (date,15,4);
MuhaiminMokhtar 0:933481fda425 324 lcd.printString (day, 25, 5);
MuhaiminMokhtar 0:933481fda425 325 wait(1.0); // delay for a second
MuhaiminMokhtar 0:933481fda425 326 lcd.clear();
MuhaiminMokhtar 0:933481fda425 327 }