Library to use the ultrasonic sensor

Dependents:   test_ultrasonic AEB Car_Simulator

Committer:
AndreaAndreoli
Date:
Thu Jun 02 19:56:38 2016 +0000
Revision:
0:72ec72845f71
Child:
1:b3518845e71a
Firts commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndreaAndreoli 0:72ec72845f71 1 #include "mbed.h"
AndreaAndreoli 0:72ec72845f71 2 #include "Ultrasonic.h"
AndreaAndreoli 0:72ec72845f71 3
AndreaAndreoli 0:72ec72845f71 4
AndreaAndreoli 0:72ec72845f71 5 float DistanceCM = 0;
AndreaAndreoli 0:72ec72845f71 6 DigitalOut trigger(TRIGGER);
AndreaAndreoli 0:72ec72845f71 7 InterruptIn echo(ECHO); // Attach interrupt to the echo pin
AndreaAndreoli 0:72ec72845f71 8 Timer timer;
AndreaAndreoli 0:72ec72845f71 9 Ticker tick;
AndreaAndreoli 0:72ec72845f71 10
AndreaAndreoli 0:72ec72845f71 11 /*
AndreaAndreoli 0:72ec72845f71 12 * Call this function and it will return the distance in centimeter
AndreaAndreoli 0:72ec72845f71 13 */
AndreaAndreoli 0:72ec72845f71 14 float read_cm()
AndreaAndreoli 0:72ec72845f71 15 {
AndreaAndreoli 0:72ec72845f71 16 return DistanceCM;
AndreaAndreoli 0:72ec72845f71 17 }
AndreaAndreoli 0:72ec72845f71 18
AndreaAndreoli 0:72ec72845f71 19
AndreaAndreoli 0:72ec72845f71 20 void start()
AndreaAndreoli 0:72ec72845f71 21 {
AndreaAndreoli 0:72ec72845f71 22 timer.start();
AndreaAndreoli 0:72ec72845f71 23 }
AndreaAndreoli 0:72ec72845f71 24
AndreaAndreoli 0:72ec72845f71 25 void stop()
AndreaAndreoli 0:72ec72845f71 26 {
AndreaAndreoli 0:72ec72845f71 27 DistanceCM = timer.read_us()/58;
AndreaAndreoli 0:72ec72845f71 28 timer.stop();
AndreaAndreoli 0:72ec72845f71 29 //pc.printf("Distance: %f \n", DistanceCM);
AndreaAndreoli 0:72ec72845f71 30 timer.reset();
AndreaAndreoli 0:72ec72845f71 31 }
AndreaAndreoli 0:72ec72845f71 32
AndreaAndreoli 0:72ec72845f71 33 void trig()
AndreaAndreoli 0:72ec72845f71 34 {
AndreaAndreoli 0:72ec72845f71 35 trigger = 1;
AndreaAndreoli 0:72ec72845f71 36 wait_us(10);
AndreaAndreoli 0:72ec72845f71 37 trigger = 0;
AndreaAndreoli 0:72ec72845f71 38 }
AndreaAndreoli 0:72ec72845f71 39
AndreaAndreoli 0:72ec72845f71 40
AndreaAndreoli 0:72ec72845f71 41 void Ultrasonic_init()
AndreaAndreoli 0:72ec72845f71 42 {
AndreaAndreoli 0:72ec72845f71 43 timer.reset();
AndreaAndreoli 0:72ec72845f71 44 echo.rise(&start);
AndreaAndreoli 0:72ec72845f71 45 echo.fall(&stop);
AndreaAndreoli 0:72ec72845f71 46 tick.attach(&trig,0.06);
AndreaAndreoli 0:72ec72845f71 47 }