a measuring device that uses ultrasonic distance sensor SRF02 to measure distance
Dependencies: Beep N5110 PowerControl SRF02 beep mbed
Revision 0:1ca8ba125793, committed 2015-05-11
- Comitter:
- FaqihahRazak
- Date:
- Mon May 11 21:36:26 2015 +0000
- Commit message:
- Changes on the actions taken to a specific distance range; ;
Changed in this revision
diff -r 000000000000 -r 1ca8ba125793 Beep.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Beep.lib Mon May 11 21:36:26 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/shimniok/code/Beep/#3eb39e374fc3
diff -r 000000000000 -r 1ca8ba125793 N5110.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/N5110.lib Mon May 11 21:36:26 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/eencae/code/N5110/#ba8addc061ea
diff -r 000000000000 -r 1ca8ba125793 PowerControl.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PowerControl.lib Mon May 11 21:36:26 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/JST2011/code/PowerControl/#d0fa2aeb02a4
diff -r 000000000000 -r 1ca8ba125793 SRF02.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SRF02.lib Mon May 11 21:36:26 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/eencae/code/SRF02/#8e6587d88773
diff -r 000000000000 -r 1ca8ba125793 beep.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/beep.lib Mon May 11 21:36:26 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/dreschpe/code/beep/#d8e14429a95f
diff -r 000000000000 -r 1ca8ba125793 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon May 11 21:36:26 2015 +0000 @@ -0,0 +1,247 @@ +#include "mbed.h" +#include "SRF02.h" +#include "N5110.h" +#include "Beep.h" +#include "PowerControl/PowerControl.h" +#include "PowerControl/EthernetPowerControl.h" + +#define USR_POWERDOWN (0x104) +int semihost_powerdown() +{ + + uint32_t arg; + return __semihost(USR_POWERDOWN, &arg); + +} + + + +//initialise pin +N5110 lcd(p7,p8,p9,p10,p11,p13,p26); //pins used for sensor +SRF02 sensor(p28, p27); //pins used for the range finder sensor +InterruptIn button(p16); // pins used for buttons to change mode +Beep buzzer(p21); //pins used for buzzeer +PwmOut red(p24); //pins for red LED +PwmOut green(p23); //pins for green LED + +//variables +int buttonFlag=0; +int distance; +int mode2=0; + + +//functions to callback +void intro(); +void getSensorValue(); +void readMode1(); +void rangeAction1(); +void rangeAction2(); +void rangeAction3(); +void buttonPressed(); +void readMode2(); + +int main() +{ + PHY_PowerDown(); + int result = semihost_powerdown(); + + lcd.init(); + intro(); // to display the intro message + lcd.clear(); + + button.rise(&buttonPressed); // trigger event on rising edge + while(1) { + + int distance = sensor.getDistanceCm(); + char buffer[14]; + int length = sprintf(buffer,"D= %d cm",distance); + if(length<=14) + lcd.printString(buffer,7,3); + readMode1(); + wait(1); + lcd.clear(); + lcd.refresh(); + + if (buttonFlag) { + + mode2 =~ mode2; + buttonFlag = 0; + } + + if (mode2) { + getSensorValue(); + readMode2(); + lcd.clear(); + + } + + } +} + +//welcome message (name, id, project name) +void intro() +{ + + lcd.printString("Measure Up!",2,0); + lcd.printString("Nur Faqihah", 2,2); + lcd.printString("Abd Razak", 2,3); + lcd.printString("200907347", 2,4); + lcd.refresh(); + wait (3.0); +} + +//to get distance reading from the sensor +void getSensorValue() +{ + distance = sensor.getDistanceCm(); +} + + +// actions for mode 1 based on the disatance range +void readMode1() +{ + if (distance >= 235) { + + lcd.refresh(); + rangeAction1(); + + } else if (distance >= 176 & distance <= 234) { + lcd.refresh(); + rangeAction1(); + + } else if (distance >= 150 & distance <= 175) { + lcd.refresh(); + rangeAction2(); + + } else if (distance >= 135 & distance <= 149) { + lcd.refresh(); + rangeAction2(); + + } else if (distance >= 105 & distance <= 134) { + lcd.refresh(); + rangeAction2(); + + } else if (distance >= 75 & distance <= 104) { + lcd.refresh(); + rangeAction3(); + + } else if (distance >= 46 & distance <= 74) { + lcd.refresh(); + //rangeAction3(); + + } else if (distance <= 45) { + red = 1; + buzzer.beep(1000, 60); + } +} + + +// actions for mode 2 based on the disatance range +void readMode2() +{ + if (distance >= 235) { + + lcd.printString("Distance",4,1); + lcd.printString("Too Long!",6,2); + lcd.refresh(); + rangeAction1(); + + } else if (distance >= 176 & distance <= 234) { + + lcd.printString("Distance",4,1); + lcd.printString("Too Long!",6,2); + lcd.refresh(); + rangeAction1(); + + } else if (distance >= 150 & distance <= 175) { + + lcd.printString("Distance",4,1); + lcd.printString("Okay!",2,2); + lcd.refresh(); + rangeAction2(); + + } else if (distance >= 135 & distance <= 149) { + + lcd.printString("Distance",4,1); + lcd.printString("Okay!",2,2); + lcd.refresh(); + rangeAction2(); + + } else if (distance >= 105 & distance <= 134) { + + lcd.printString("Distance",4,1); + lcd.printString("Okay!",2,2); + lcd.refresh(); + rangeAction2(); + + } else if (distance >= 75 & distance <= 104) { + + lcd.printString("Distance",4,1); + lcd.printString("Okay!",2,2); + lcd.refresh(); + rangeAction2(); + + } else if (distance >= 46 & distance <= 74) { + + lcd.printString("Distance",4,1); + lcd.printString("Too Short!",2,2); + lcd.refresh(); + rangeAction3(); + + } else if (distance <= 45) { + + lcd.printString("Distance",4,1); + lcd.printString("Too Short!",2,2); + lcd.refresh(); + red = 1; + buzzer.beep(1000, 60); + } +} + +//Interrupt Service Routine +void buttonPressed() +{ + buttonFlag = 1; +} + +//Actions when range action 1 is achieved +void rangeAction1(){ + + red = 0; + green = 1; + buzzer.beep(1000,0.5); + wait(1); + buzzer.nobeep(); + +} + +//Actions when range action 2 is achieved +void rangeAction2(){ + + red = 0; + green = 0; + buzzer.beep(1000,1); + wait(0.5); + buzzer.nobeep(); + +} + +//Actions when range action 3 is achieved +void rangeAction3(){ + + red = 1; + green = 0; + buzzer.beep(1000,0.5); + wait(0.2); + buzzer.nobeep(); + +} + + + + + + + + +
diff -r 000000000000 -r 1ca8ba125793 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon May 11 21:36:26 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/8ab26030e058 \ No newline at end of file