Distance_Sensor

Dependencies:   N5110 SDFileSystem SRF02 mbed

Committer:
garyk6666
Date:
Thu May 05 08:59:40 2016 +0000
Revision:
0:17a67f6f9383
2.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
garyk6666 0:17a67f6f9383 1 #include "main.h"
garyk6666 0:17a67f6f9383 2
garyk6666 0:17a67f6f9383 3 int main()
garyk6666 0:17a67f6f9383 4 {
garyk6666 0:17a67f6f9383 5 init_K64F();//the k64f initialization
garyk6666 0:17a67f6f9383 6 button.fall(&green);//for interruptIn
garyk6666 0:17a67f6f9383 7 button.mode(PullNone);//for interruptIn
garyk6666 0:17a67f6f9383 8 lcd.init();//the lcd initialization
garyk6666 0:17a67f6f9383 9 wait(1.0);
garyk6666 0:17a67f6f9383 10 lcd.printString("Distance",18,1);//Display the Distance
garyk6666 0:17a67f6f9383 11 lcd.printString("Detector",18,3);//Display the Detector
garyk6666 0:17a67f6f9383 12 wait(1.0);
garyk6666 0:17a67f6f9383 13 lcd.clear();//clear the display
garyk6666 0:17a67f6f9383 14 lcd.printString("Kai yuan!",18,2);//Display the name Kai yuan
garyk6666 0:17a67f6f9383 15 lcd.printString("200967075",18,4);//Display the 200967075
garyk6666 0:17a67f6f9383 16 wait(2.0);
garyk6666 0:17a67f6f9383 17 lcd.clear();//clear the display
garyk6666 0:17a67f6f9383 18 button.mode(PullDown);//for interruptIn
garyk6666 0:17a67f6f9383 19
garyk6666 0:17a67f6f9383 20 while(1) {
garyk6666 0:17a67f6f9383 21 if(yesno == true) {
garyk6666 0:17a67f6f9383 22 char buffer[14];// each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
garyk6666 0:17a67f6f9383 23 buzzer.period(0.001); // try 1 kKz
garyk6666 0:17a67f6f9383 24 buzzer = 0.5; // turn on (square wave)
garyk6666 0:17a67f6f9383 25 wait(1.0);
garyk6666 0:17a67f6f9383 26 lcd.clear();//clear the display
garyk6666 0:17a67f6f9383 27 int distance=sensor.getDistanceCm();//get distance
garyk6666 0:17a67f6f9383 28 int length = sprintf(buffer,"D = %d cm",distance);
garyk6666 0:17a67f6f9383 29 if (length <= 14) {// if string will fit on display
garyk6666 0:17a67f6f9383 30 lcd.printString(buffer,0,1);
garyk6666 0:17a67f6f9383 31 }
garyk6666 0:17a67f6f9383 32 lcd.drawLine(0,24,0,48,1);//display the line
garyk6666 0:17a67f6f9383 33 lcd.drawRect(distance/5,31,10,5,1);//display the rectangle
garyk6666 0:17a67f6f9383 34 lcd.drawCircle(distance/5+3,37,1,1);//display the circle
garyk6666 0:17a67f6f9383 35 lcd.drawCircle(distance/5+7,37,1,1);//display the circle
garyk6666 0:17a67f6f9383 36 lcd.refresh();
garyk6666 0:17a67f6f9383 37 ticker.attach(&green1,0.1);//for led flashing
garyk6666 0:17a67f6f9383 38
garyk6666 0:17a67f6f9383 39 }
garyk6666 0:17a67f6f9383 40
garyk6666 0:17a67f6f9383 41 else {
garyk6666 0:17a67f6f9383 42 lcd.clear();
garyk6666 0:17a67f6f9383 43 lcd.printString("Are you ready?",0,2);
garyk6666 0:17a67f6f9383 44 buzzer = 0.0; // turn off (0% duty cycle)
garyk6666 0:17a67f6f9383 45 ticker.detach();
garyk6666 0:17a67f6f9383 46 green_led = green_led;//turn off the led
garyk6666 0:17a67f6f9383 47 }
garyk6666 0:17a67f6f9383 48 r_led = 1;
garyk6666 0:17a67f6f9383 49 wait(0.5);
garyk6666 0:17a67f6f9383 50 }
garyk6666 0:17a67f6f9383 51 }
garyk6666 0:17a67f6f9383 52
garyk6666 0:17a67f6f9383 53 void init_K64F()
garyk6666 0:17a67f6f9383 54 {
garyk6666 0:17a67f6f9383 55 // on-board LEDs are active-low, so set pin high to turn them off.
garyk6666 0:17a67f6f9383 56 r_led = 1;
garyk6666 0:17a67f6f9383 57 g_led = 1;
garyk6666 0:17a67f6f9383 58 b_led = 1;
garyk6666 0:17a67f6f9383 59
garyk6666 0:17a67f6f9383 60 // since the on-board switches have external pull-ups, we should disable the internal pull-down
garyk6666 0:17a67f6f9383 61 // resistors that are enabled by default using InterruptIn
garyk6666 0:17a67f6f9383 62 button.mode(PullNone);
garyk6666 0:17a67f6f9383 63 button.mode(PullNone);
garyk6666 0:17a67f6f9383 64
garyk6666 0:17a67f6f9383 65 }
garyk6666 0:17a67f6f9383 66
garyk6666 0:17a67f6f9383 67 void green()
garyk6666 0:17a67f6f9383 68 {
garyk6666 0:17a67f6f9383 69 yesno=!yesno;//true or false
garyk6666 0:17a67f6f9383 70 }
garyk6666 0:17a67f6f9383 71 void green1()
garyk6666 0:17a67f6f9383 72 {
garyk6666 0:17a67f6f9383 73 green_led =! green_led;//make led light
garyk6666 0:17a67f6f9383 74 }