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

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?

UserRevisionLine numberNew 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