![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
This program allows user to measure distance with SRF02 distance sensor and display the result on a Nokia LCD Display
Dependencies: N5110 PowerControl SRF02 mbed
main.h@5:c18bd289bc88, 2015-05-10 (annotated)
- Committer:
- el13a2w
- Date:
- Sun May 10 10:29:49 2015 +0000
- Revision:
- 5:c18bd289bc88
- Parent:
- 3:012cdc8e0f75
End product
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el13a2w | 3:012cdc8e0f75 | 1 | /** |
el13a2w | 3:012cdc8e0f75 | 2 | @file main.h |
el13a2w | 3:012cdc8e0f75 | 3 | @brief Project: Ultrasonic Sensor |
el13a2w | 3:012cdc8e0f75 | 4 | @author Adrian Wong |
el13a2w | 3:012cdc8e0f75 | 5 | @date April 2015 |
el13a2w | 3:012cdc8e0f75 | 6 | */ |
el13a2w | 3:012cdc8e0f75 | 7 | |
el13a2w | 3:012cdc8e0f75 | 8 | #ifndef MAIN_H |
el13a2w | 3:012cdc8e0f75 | 9 | #define MAIN_H |
el13a2w | 3:012cdc8e0f75 | 10 | |
el13a2w | 3:012cdc8e0f75 | 11 | #define PI 3.14159265359 |
el13a2w | 3:012cdc8e0f75 | 12 | |
el13a2w | 3:012cdc8e0f75 | 13 | #include "mbed.h" |
el13a2w | 3:012cdc8e0f75 | 14 | |
el13a2w | 3:012cdc8e0f75 | 15 | /** |
el13a2w | 3:012cdc8e0f75 | 16 | @namespace lcd |
el13a2w | 3:012cdc8e0f75 | 17 | @brief Nokia LCD screen showing sensor measurements |
el13a2w | 3:012cdc8e0f75 | 18 | @brief vcc, sce, rst, dc, mosi, clk, led backlight |
el13a2w | 3:012cdc8e0f75 | 19 | */ |
el13a2w | 3:012cdc8e0f75 | 20 | N5110 lcd(p7,p8,p9,p10,p11,p13,p26); |
el13a2w | 3:012cdc8e0f75 | 21 | /** |
el13a2w | 3:012cdc8e0f75 | 22 | @namespace leds |
el13a2w | 3:012cdc8e0f75 | 23 | @brief GPIO output for status onboard LEDs |
el13a2w | 3:012cdc8e0f75 | 24 | */ |
el13a2w | 3:012cdc8e0f75 | 25 | BusOut leds(LED4,LED3,LED2,LED1); |
el13a2w | 3:012cdc8e0f75 | 26 | /** |
el13a2w | 3:012cdc8e0f75 | 27 | @namespace sensor |
el13a2w | 3:012cdc8e0f75 | 28 | @brief SRF02 sensor input |
el13a2w | 3:012cdc8e0f75 | 29 | @brief sda, scl |
el13a2w | 3:012cdc8e0f75 | 30 | */ |
el13a2w | 3:012cdc8e0f75 | 31 | SRF02 sensor(p28,p27); |
el13a2w | 3:012cdc8e0f75 | 32 | /** |
el13a2w | 3:012cdc8e0f75 | 33 | @namespace serial |
el13a2w | 3:012cdc8e0f75 | 34 | @brief serial USB transmission line |
el13a2w | 3:012cdc8e0f75 | 35 | */ |
el13a2w | 3:012cdc8e0f75 | 36 | Serial serial(USBTX,USBRX); |
el13a2w | 3:012cdc8e0f75 | 37 | /** |
el13a2w | 3:012cdc8e0f75 | 38 | @namespace timer1 |
el13a2w | 3:012cdc8e0f75 | 39 | @brief 1st ticker timer |
el13a2w | 3:012cdc8e0f75 | 40 | */ |
el13a2w | 3:012cdc8e0f75 | 41 | Ticker timer1; |
el13a2w | 3:012cdc8e0f75 | 42 | /** |
el13a2w | 3:012cdc8e0f75 | 43 | @namespace timer2 |
el13a2w | 3:012cdc8e0f75 | 44 | @brief 2nd ticker timer |
el13a2w | 3:012cdc8e0f75 | 45 | */ |
el13a2w | 3:012cdc8e0f75 | 46 | Ticker timer2; |
el13a2w | 3:012cdc8e0f75 | 47 | /** |
el13a2w | 3:012cdc8e0f75 | 48 | @namespace timer3 |
el13a2w | 3:012cdc8e0f75 | 49 | @brief 3rd ticker timer |
el13a2w | 3:012cdc8e0f75 | 50 | */ |
el13a2w | 3:012cdc8e0f75 | 51 | Ticker timer3; |
el13a2w | 3:012cdc8e0f75 | 52 | /** |
el13a2w | 3:012cdc8e0f75 | 53 | @namespace timer4 |
el13a2w | 3:012cdc8e0f75 | 54 | @brief 4th ticker timer |
el13a2w | 3:012cdc8e0f75 | 55 | */ |
el13a2w | 3:012cdc8e0f75 | 56 | Ticker timer4; |
el13a2w | 3:012cdc8e0f75 | 57 | /** |
el13a2w | 3:012cdc8e0f75 | 58 | @namespace timer5 |
el13a2w | 3:012cdc8e0f75 | 59 | @brief 5th ticker timer |
el13a2w | 3:012cdc8e0f75 | 60 | */ |
el13a2w | 3:012cdc8e0f75 | 61 | Ticker timer5; |
el13a2w | 3:012cdc8e0f75 | 62 | /** |
el13a2w | 3:012cdc8e0f75 | 63 | @namespace unit |
el13a2w | 3:012cdc8e0f75 | 64 | @brief unit interrupt button |
el13a2w | 3:012cdc8e0f75 | 65 | */ |
el13a2w | 3:012cdc8e0f75 | 66 | InterruptIn unit(p16); |
el13a2w | 3:012cdc8e0f75 | 67 | /** |
el13a2w | 3:012cdc8e0f75 | 68 | @namespace display |
el13a2w | 3:012cdc8e0f75 | 69 | @brief LCD display interrupt button |
el13a2w | 3:012cdc8e0f75 | 70 | */ |
el13a2w | 3:012cdc8e0f75 | 71 | InterruptIn display(p17); // input interrupt button |
el13a2w | 3:012cdc8e0f75 | 72 | /** |
el13a2w | 3:012cdc8e0f75 | 73 | @namespace led1 |
el13a2w | 3:012cdc8e0f75 | 74 | @brief output showing on/off status |
el13a2w | 3:012cdc8e0f75 | 75 | */ |
el13a2w | 3:012cdc8e0f75 | 76 | DigitalOut led1(p24); |
el13a2w | 3:012cdc8e0f75 | 77 | /** |
el13a2w | 3:012cdc8e0f75 | 78 | @namespace led2 |
el13a2w | 3:012cdc8e0f75 | 79 | @brief warning LED |
el13a2w | 3:012cdc8e0f75 | 80 | */ |
el13a2w | 3:012cdc8e0f75 | 81 | DigitalOut led2(p23); // warning LED |
el13a2w | 3:012cdc8e0f75 | 82 | /** |
el13a2w | 3:012cdc8e0f75 | 83 | @namespace buzzer |
el13a2w | 3:012cdc8e0f75 | 84 | @brief warning buzzer |
el13a2w | 3:012cdc8e0f75 | 85 | */ |
el13a2w | 3:012cdc8e0f75 | 86 | PwmOut buzzer(p21); |
el13a2w | 3:012cdc8e0f75 | 87 | /** |
el13a2w | 3:012cdc8e0f75 | 88 | @namespace pot |
el13a2w | 3:012cdc8e0f75 | 89 | @brief volume control for buzzer |
el13a2w | 3:012cdc8e0f75 | 90 | */ |
el13a2w | 3:012cdc8e0f75 | 91 | AnalogIn pot(p20); |
el13a2w | 3:012cdc8e0f75 | 92 | /** |
el13a2w | 3:012cdc8e0f75 | 93 | @namespace local |
el13a2w | 3:012cdc8e0f75 | 94 | @brief create local filesystem |
el13a2w | 3:012cdc8e0f75 | 95 | */ |
el13a2w | 3:012cdc8e0f75 | 96 | LocalFileSystem local("local"); |
el13a2w | 3:012cdc8e0f75 | 97 | |
el13a2w | 3:012cdc8e0f75 | 98 | /** |
el13a2w | 3:012cdc8e0f75 | 99 | ISR that is called when serial data is received |
el13a2w | 3:012cdc8e0f75 | 100 | @param buffer - input maximum stored information |
el13a2w | 3:012cdc8e0f75 | 101 | @param setTimeFlag - integer to add |
el13a2w | 3:012cdc8e0f75 | 102 | @returns setTimeFlag value and stored serial information |
el13a2w | 3:012cdc8e0f75 | 103 | */ |
el13a2w | 3:012cdc8e0f75 | 104 | void serialISR(); |
el13a2w | 3:012cdc8e0f75 | 105 | /** |
el13a2w | 3:012cdc8e0f75 | 106 | function to set the UNIX time |
el13a2w | 3:012cdc8e0f75 | 107 | @param time - atoi() converts a string to an integer |
el13a2w | 3:012cdc8e0f75 | 108 | @returns updated time |
el13a2w | 3:012cdc8e0f75 | 109 | */ |
el13a2w | 3:012cdc8e0f75 | 110 | void setTime(); |
el13a2w | 3:012cdc8e0f75 | 111 | /** |
el13a2w | 3:012cdc8e0f75 | 112 | buffer to store received string |
el13a2w | 3:012cdc8e0f75 | 113 | @param setting buffer size |
el13a2w | 3:012cdc8e0f75 | 114 | @returns stored string |
el13a2w | 3:012cdc8e0f75 | 115 | */ |
el13a2w | 3:012cdc8e0f75 | 116 | char rxString[16]; |
el13a2w | 3:012cdc8e0f75 | 117 | /** |
el13a2w | 3:012cdc8e0f75 | 118 | function to action of unit button |
el13a2w | 3:012cdc8e0f75 | 119 | @returns toggled unit button value |
el13a2w | 3:012cdc8e0f75 | 120 | */ |
el13a2w | 3:012cdc8e0f75 | 121 | void uPressed(); |
el13a2w | 3:012cdc8e0f75 | 122 | /** |
el13a2w | 3:012cdc8e0f75 | 123 | function to action of display button |
el13a2w | 3:012cdc8e0f75 | 124 | @returns toggled display button value |
el13a2w | 3:012cdc8e0f75 | 125 | */ |
el13a2w | 3:012cdc8e0f75 | 126 | void dPressed(); |
el13a2w | 3:012cdc8e0f75 | 127 | /** |
el13a2w | 3:012cdc8e0f75 | 128 | function to action when timer1 triggers |
el13a2w | 3:012cdc8e0f75 | 129 | @returns timer1Flag value |
el13a2w | 3:012cdc8e0f75 | 130 | */ |
el13a2w | 3:012cdc8e0f75 | 131 | void timer1Expired(); |
el13a2w | 3:012cdc8e0f75 | 132 | /** |
el13a2w | 3:012cdc8e0f75 | 133 | function to action when timer2 triggers |
el13a2w | 3:012cdc8e0f75 | 134 | @returns timer2Flag value |
el13a2w | 3:012cdc8e0f75 | 135 | */ |
el13a2w | 3:012cdc8e0f75 | 136 | void timer2Expired(); |
el13a2w | 3:012cdc8e0f75 | 137 | /** |
el13a2w | 3:012cdc8e0f75 | 138 | function to action when timer3 triggers |
el13a2w | 3:012cdc8e0f75 | 139 | @returns timer3Flag value |
el13a2w | 3:012cdc8e0f75 | 140 | */ |
el13a2w | 3:012cdc8e0f75 | 141 | void timer3Expired(); |
el13a2w | 3:012cdc8e0f75 | 142 | /** |
el13a2w | 3:012cdc8e0f75 | 143 | function to action when timer4 triggers |
el13a2w | 3:012cdc8e0f75 | 144 | @returns timer4Flag value |
el13a2w | 3:012cdc8e0f75 | 145 | */ |
el13a2w | 3:012cdc8e0f75 | 146 | void timer4Expired(); |
el13a2w | 3:012cdc8e0f75 | 147 | /** |
el13a2w | 3:012cdc8e0f75 | 148 | function to action when timer5 triggers |
el13a2w | 3:012cdc8e0f75 | 149 | @returns timer5Flag value |
el13a2w | 3:012cdc8e0f75 | 150 | */ |
el13a2w | 3:012cdc8e0f75 | 151 | void timer5Expired(); |
el13a2w | 3:012cdc8e0f75 | 152 | /** |
el13a2w | 3:012cdc8e0f75 | 153 | warning function |
el13a2w | 3:012cdc8e0f75 | 154 | @param vol = potentiometer reading divided by 5 |
el13a2w | 3:012cdc8e0f75 | 155 | @param buzzer = value of vol + 0.8 |
el13a2w | 3:012cdc8e0f75 | 156 | @param led2 = inverts led2 value |
el13a2w | 3:012cdc8e0f75 | 157 | @returns buzzer and led2 value |
el13a2w | 3:012cdc8e0f75 | 158 | */ |
el13a2w | 3:012cdc8e0f75 | 159 | void warning(); |
el13a2w | 3:012cdc8e0f75 | 160 | /** |
el13a2w | 3:012cdc8e0f75 | 161 | function to write data to file |
el13a2w | 3:012cdc8e0f75 | 162 | @param buffer - set characters to be saved |
el13a2w | 3:012cdc8e0f75 | 163 | @param distance - set distance value to be saved |
el13a2w | 3:012cdc8e0f75 | 164 | @returns buffer and distance |
el13a2w | 3:012cdc8e0f75 | 165 | */ |
el13a2w | 3:012cdc8e0f75 | 166 | void writeDataToFile(char* buffer, float distance); |
el13a2w | 3:012cdc8e0f75 | 167 | /** |
el13a2w | 3:012cdc8e0f75 | 168 | function to get distance |
el13a2w | 3:012cdc8e0f75 | 169 | @param d1 to d10 - distance measured by sensor in cm |
el13a2w | 3:012cdc8e0f75 | 170 | @param dt - average distance measured |
el13a2w | 3:012cdc8e0f75 | 171 | @returns dt |
el13a2w | 3:012cdc8e0f75 | 172 | */ |
el13a2w | 3:012cdc8e0f75 | 173 | float measureDistance(); // function to get distance |
el13a2w | 3:012cdc8e0f75 | 174 | |
el13a2w | 3:012cdc8e0f75 | 175 | int timer1Flag = 0; /*!< timer1 flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 176 | int timer2Flag = 0; /*!< timer2 flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 177 | int timer3Flag = 0; /*!< timer3 flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 178 | int timer4Flag = 0; /*!< timer4 flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 179 | int timer5Flag = 0; /*!< timer5 flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 180 | int uFlag = 0; /*!< unit button flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 181 | int dFlag = 0; /*!< display button flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 182 | int setTimeFlag = 0; /*!< setTime flag set in ISR */ |
el13a2w | 3:012cdc8e0f75 | 183 | int x = 84; /*!< size of set horizontal (x-axis) */ |
el13a2w | 3:012cdc8e0f75 | 184 | int y = 48; /*!< size of set vertically (y-axis) */ |
el13a2w | 3:012cdc8e0f75 | 185 | |
el13a2w | 3:012cdc8e0f75 | 186 | #endif |