an ultrasonic sensor used as a car sensor

Dependencies:   N5110 PowerControl beep mbed sensor

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?

UserRevisionLine numberNew contents of line
sjaffal3 1:475a5b7258fa 1 /**
sjaffal3 1:475a5b7258fa 2 @file main.h
sjaffal3 1:475a5b7258fa 3 @brief Header file containing functions prototypes, defines and global variables.
sjaffal3 1:475a5b7258fa 4 @brief Revision 1.0.
sjaffal3 1:475a5b7258fa 5 @author Saleh Jaffal
sjaffal3 1:475a5b7258fa 6 @date April 2015
sjaffal3 1:475a5b7258fa 7 */
sjaffal3 1:475a5b7258fa 8
sjaffal3 1:475a5b7258fa 9 #ifndef MAIN_H
sjaffal3 1:475a5b7258fa 10 #define MAIN_H
sjaffal3 2:9328053b2ba7 11 //#include "beep.h"
sjaffal3 1:475a5b7258fa 12 #include "mbed.h"
sjaffal3 1:475a5b7258fa 13 #include "SRF02.h"
sjaffal3 1:475a5b7258fa 14 #include "N5110.h"
sjaffal3 2:9328053b2ba7 15 #include "beep.h" ///@see a library I found to initiate the buzzer
sjaffal3 1:475a5b7258fa 16 #include "PowerControl/PowerControl.h"
sjaffal3 1:475a5b7258fa 17 #include "PowerControl/EthernetPowerControl.h"
sjaffal3 1:475a5b7258fa 18
sjaffal3 1:475a5b7258fa 19 #define USR_POWERDOWN (0x104)
sjaffal3 1:475a5b7258fa 20 N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
sjaffal3 1:475a5b7258fa 21 SRF02 sensor(p28, p27);
sjaffal3 1:475a5b7258fa 22 /**
sjaffal3 1:475a5b7258fa 23 @namespace buzzer
sjaffal3 1:475a5b7258fa 24 @brief output for status buzzer
sjaffal3 1:475a5b7258fa 25 */
sjaffal3 1:475a5b7258fa 26 Beep buzzer(p21);
sjaffal3 1:475a5b7258fa 27 /**
sjaffal3 1:475a5b7258fa 28 @namespace green1
sjaffal3 1:475a5b7258fa 29 @brief GPIO output for status LED
sjaffal3 1:475a5b7258fa 30 */
sjaffal3 1:475a5b7258fa 31 PwmOut green1(p22);
sjaffal3 1:475a5b7258fa 32 /**
sjaffal3 1:475a5b7258fa 33 @namespace green2
sjaffal3 1:475a5b7258fa 34 @brief GPIO output for status LED
sjaffal3 1:475a5b7258fa 35 */
sjaffal3 1:475a5b7258fa 36 PwmOut green2(p23);
sjaffal3 1:475a5b7258fa 37 /**
sjaffal3 1:475a5b7258fa 38 @namespace yellow1
sjaffal3 1:475a5b7258fa 39 @brief GPIO output for status LED
sjaffal3 1:475a5b7258fa 40 */
sjaffal3 1:475a5b7258fa 41 PwmOut yellow1(p24);
sjaffal3 1:475a5b7258fa 42 /**
sjaffal3 1:475a5b7258fa 43 @namespace yellow2
sjaffal3 1:475a5b7258fa 44 @brief GPIO output for status LED
sjaffal3 1:475a5b7258fa 45 */
sjaffal3 1:475a5b7258fa 46 PwmOut yellow2(p25);
sjaffal3 1:475a5b7258fa 47 /**
sjaffal3 1:475a5b7258fa 48 @namespace red1
sjaffal3 1:475a5b7258fa 49 @brief GPIO output for status LED
sjaffal3 1:475a5b7258fa 50 */
sjaffal3 1:475a5b7258fa 51 DigitalOut red1(p29);
sjaffal3 1:475a5b7258fa 52 /**
sjaffal3 1:475a5b7258fa 53 @namespace red2
sjaffal3 1:475a5b7258fa 54 @brief GPIO output for status LED
sjaffal3 1:475a5b7258fa 55 */
sjaffal3 1:475a5b7258fa 56 DigitalOut red2(p30);
sjaffal3 1:475a5b7258fa 57 /**
sjaffal3 1:475a5b7258fa 58 @namespace pot
sjaffal3 1:475a5b7258fa 59 @brief GPIO input for lcd brightness
sjaffal3 1:475a5b7258fa 60 */
sjaffal3 2:9328053b2ba7 61 AnalogIn mypot(p20);
sjaffal3 1:475a5b7258fa 62 /**
sjaffal3 1:475a5b7258fa 63 @namespace button
sjaffal3 1:475a5b7258fa 64 @brief GPIO input to switch values from the sensor
sjaffal3 1:475a5b7258fa 65 */
sjaffal3 1:475a5b7258fa 66 InterruptIn button(p15);
sjaffal3 1:475a5b7258fa 67
sjaffal3 1:475a5b7258fa 68
sjaffal3 1:475a5b7258fa 69 Serial pc(USBTX, USBRX);
sjaffal3 1:475a5b7258fa 70
sjaffal3 1:475a5b7258fa 71
sjaffal3 1:475a5b7258fa 72
sjaffal3 2:9328053b2ba7 73 void beepOff();
sjaffal3 2:9328053b2ba7 74
sjaffal3 2:9328053b2ba7 75 void beepOn(float t);
sjaffal3 2:9328053b2ba7 76
sjaffal3 2:9328053b2ba7 77 /**
sjaffal3 2:9328053b2ba7 78 Shows the welcome message when the LCD is on
sjaffal3 2:9328053b2ba7 79 */
sjaffal3 2:9328053b2ba7 80 void welcomeMessage();
sjaffal3 2:9328053b2ba7 81 /**
sjaffal3 2:9328053b2ba7 82 gets the distance in cm by dividing
sjaffal3 2:9328053b2ba7 83 10 read values by 10
sjaffal3 2:9328053b2ba7 84 @returns the average distance in cm
sjaffal3 2:9328053b2ba7 85 */
sjaffal3 2:9328053b2ba7 86 void getDistanceCm();
sjaffal3 2:9328053b2ba7 87 /**
sjaffal3 2:9328053b2ba7 88 gets the distance in inches by dividing
sjaffal3 2:9328053b2ba7 89 10 read values by 10
sjaffal3 2:9328053b2ba7 90 @returns the average distance in inches
sjaffal3 2:9328053b2ba7 91 */
sjaffal3 2:9328053b2ba7 92 void getDistanceIn();
sjaffal3 2:9328053b2ba7 93 /**
sjaffal3 2:9328053b2ba7 94 gets the distance in us by dividing
sjaffal3 2:9328053b2ba7 95 10 read values by 10
sjaffal3 2:9328053b2ba7 96 @returns the average distance in us
sjaffal3 2:9328053b2ba7 97 */
sjaffal3 2:9328053b2ba7 98 void getDistanceUs();
sjaffal3 2:9328053b2ba7 99
sjaffal3 2:9328053b2ba7 100 /**
sjaffal3 2:9328053b2ba7 101 when the button is pressed this
sjaffal3 2:9328053b2ba7 102 action is called
sjaffal3 2:9328053b2ba7 103 */
sjaffal3 2:9328053b2ba7 104 void buttonPressed();
sjaffal3 2:9328053b2ba7 105 /**
sjaffal3 2:9328053b2ba7 106 looks for where the range of the reading is
sjaffal3 2:9328053b2ba7 107 to set its conditions
sjaffal3 2:9328053b2ba7 108 */
sjaffal3 2:9328053b2ba7 109 void compDist();
sjaffal3 2:9328053b2ba7 110 /**
sjaffal3 2:9328053b2ba7 111 compares the cases of each distance
sjaffal3 2:9328053b2ba7 112 to set the Led's values and the buzzer
sjaffal3 2:9328053b2ba7 113 */
sjaffal3 2:9328053b2ba7 114 void distanceA();
sjaffal3 2:9328053b2ba7 115
sjaffal3 2:9328053b2ba7 116
sjaffal3 2:9328053b2ba7 117 int distanceCm; /*!< distanceCm set in ISR */
sjaffal3 2:9328053b2ba7 118 int distanceIn; /*!< distanceIn set in ISR */
sjaffal3 2:9328053b2ba7 119 int distanceUs; /*!< distanceUs set in ISR */
sjaffal3 2:9328053b2ba7 120 int A; /*!< used to compare the cases after being set in compDist() */
sjaffal3 1:475a5b7258fa 121
sjaffal3 1:475a5b7258fa 122 /**
sjaffal3 1:475a5b7258fa 123 All distances used to add
sjaffal3 1:475a5b7258fa 124 the 10 readings from the sensor
sjaffal3 1:475a5b7258fa 125 to get an average of 10 readings
sjaffal3 1:475a5b7258fa 126 per second, so that it will cancel
sjaffal3 1:475a5b7258fa 127 out the noise.
sjaffal3 1:475a5b7258fa 128 */
sjaffal3 1:475a5b7258fa 129 int distance1; /*!< distance1 set in ISR */
sjaffal3 1:475a5b7258fa 130 int distance2; /*!< distance2 set in ISR */
sjaffal3 1:475a5b7258fa 131 int distance3; /*!< distance3 set in ISR */
sjaffal3 1:475a5b7258fa 132 int distance4; /*!< distance4 set in ISR */
sjaffal3 1:475a5b7258fa 133 int distance5; /*!< distance5 set in ISR */
sjaffal3 1:475a5b7258fa 134 int distance6; /*!< distance6 set in ISR */
sjaffal3 1:475a5b7258fa 135 int distance7; /*!< distance7 set in ISR */
sjaffal3 1:475a5b7258fa 136 int distance8; /*!< distance8 set in ISR */
sjaffal3 1:475a5b7258fa 137 int distance9; /*!< distance9 set in ISR */
sjaffal3 1:475a5b7258fa 138 int distance10; /*!< distance10 set in ISR */
sjaffal3 2:9328053b2ba7 139
sjaffal3 2:9328053b2ba7 140 float mypotVal; /*!< mypotVal is used to transfer the vlaue of the pot
sjaffal3 2:9328053b2ba7 141 to lcd brightness */
sjaffal3 1:475a5b7258fa 142 int i=0;
sjaffal3 2:9328053b2ba7 143 int sum; /*!< used to add all the distances together (ie distance 1,
sjaffal3 2:9328053b2ba7 144 distance 2, ...*/
sjaffal3 1:475a5b7258fa 145 #endif