Simple library for reading distance from SRF02 Ultrasonic Sensor in I2C mode.

Fork of SRF02 by Craig Evans

Committer:
garyk6666
Date:
Thu May 05 08:46:32 2016 +0000
Revision:
2:ab1c9250d9fb
1.0

Who changed what in which revision?

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