A program designed to get the distance from an SRF02 distance sensor and create an audible and visual indication of that distance with data logging capabilities.
Dependencies: N5110 PowerControl SRF02 mbed
main.h@6:d6afc4026a1d, 2015-04-09 (annotated)
- Committer:
- el13sr
- Date:
- Thu Apr 09 11:32:48 2015 +0000
- Revision:
- 6:d6afc4026a1d
- Parent:
- 4:0bd5c189f2f3
- Child:
- 7:65bdd2d0d6ad
v0.5 - Added working modes and powered down ethernet.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el13sr | 0:7d01de89a1ff | 1 | // Distance Sensor Project |
el13sr | 0:7d01de89a1ff | 2 | // Header File "main.h" |
el13sr | 0:7d01de89a1ff | 3 | // Designed By Sam Russell (200773195) |
el13sr | 0:7d01de89a1ff | 4 | // Date: 07/04/2015 || Version: 0.1 |
el13sr | 0:7d01de89a1ff | 5 | |
el13sr | 0:7d01de89a1ff | 6 | #include "mbed.h" |
el13sr | 0:7d01de89a1ff | 7 | #include "SRF02.h" |
el13sr | 0:7d01de89a1ff | 8 | #include "N5110.h" |
el13sr | 6:d6afc4026a1d | 9 | #include "PowerControl/PowerControl.h" |
el13sr | 6:d6afc4026a1d | 10 | #include "PowerControl/EthernetPowerControl.h" |
el13sr | 0:7d01de89a1ff | 11 | |
el13sr | 0:7d01de89a1ff | 12 | //Inputs |
el13sr | 0:7d01de89a1ff | 13 | SRF02 SRF02(p28,p27); // SDA, SCL |
el13sr | 0:7d01de89a1ff | 14 | AnalogIn Switch(p16); //Power Control Switch |
el13sr | 0:7d01de89a1ff | 15 | InterruptIn Button(p17); //Logging Data? (Saving to mbed) |
el13sr | 0:7d01de89a1ff | 16 | |
el13sr | 0:7d01de89a1ff | 17 | //Outputs |
el13sr | 1:387d5e6fa05f | 18 | AnalogOut logLED(p18); // Logging To Disk Indicator |
el13sr | 0:7d01de89a1ff | 19 | // vcc,sce,rst,dc,mosi,clk,led |
el13sr | 0:7d01de89a1ff | 20 | N5110 display(p7,p8,p9,p10,p11,p13,p26); |
el13sr | 6:d6afc4026a1d | 21 | PwmOut buzzer(p21); //Alert Buzzer |
el13sr | 0:7d01de89a1ff | 22 | PwmOut backlight(p26); //Backlight output pin. |
el13sr | 0:7d01de89a1ff | 23 | BusOut leds (LED1,LED2,LED3,LED4); //MBED onboard LEDs. |
el13sr | 0:7d01de89a1ff | 24 | Serial pc(USBTX,USBRX); |
el13sr | 0:7d01de89a1ff | 25 | |
el13sr | 0:7d01de89a1ff | 26 | Ticker timer; |
el13sr | 0:7d01de89a1ff | 27 | |
el13sr | 0:7d01de89a1ff | 28 | int timerflag = 0; //initialise timer flag to equal 0. |
el13sr | 4:0bd5c189f2f3 | 29 | int distance = 0; //initialise distance to equal 0. |
el13sr | 0:7d01de89a1ff | 30 | int buttonFlag = 0; //initialise buttonFlag to be 0, which defines the state of the data logger. |
el13sr | 4:0bd5c189f2f3 | 31 | int setTimeFlag = 0; //initialise setTimeFlag to equal 0. |
el13sr | 4:0bd5c189f2f3 | 32 | int mode = 0; //initialise mode to equal 0 (normal mode) |
el13sr | 0:7d01de89a1ff | 33 | char rxString[16]; // buffer to store received string |
el13sr | 0:7d01de89a1ff | 34 | |
el13sr | 4:0bd5c189f2f3 | 35 | LocalFileSystem local("local"); // create local filesystem |
el13sr | 4:0bd5c189f2f3 | 36 | void writeDataToFile(char* data, float Distancedata); //Creates the void which takes the two types of data into the function. |
el13sr | 4:0bd5c189f2f3 | 37 | |
el13sr | 4:0bd5c189f2f3 | 38 | void barChart(); //Function to update the bar chart on the display. |
el13sr | 4:0bd5c189f2f3 | 39 | void error(int code); //DEBUG: Error Function |
el13sr | 4:0bd5c189f2f3 | 40 | void timerExpired(); //Function for when the timer expires. |
el13sr | 4:0bd5c189f2f3 | 41 | float avgDist(); //Function to get the average distance. |
el13sr | 4:0bd5c189f2f3 | 42 | void buttonPressed(); //Function to change mode once button is pressed. |