Use this repository for pilot an ultrasonic sensor

Fork of UltrasonicSensor by Daniele Briguglio

Committer:
danky02
Date:
Mon Jan 15 21:12:25 2018 +0000
Revision:
1:9d56714c1119
Parent:
0:8ca9f71b386d
Use this library for pilot an ultrasonic sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
danky02 0:8ca9f71b386d 1 /*
danky02 0:8ca9f71b386d 2 UltrasonicSensor.h - drive a distance sensor- Version 1.0.0
danky02 0:8ca9f71b386d 3 Copyright (c) 2018 Daniele Briguglio. All right reserved.
danky02 0:8ca9f71b386d 4
danky02 0:8ca9f71b386d 5 This library is free software; you can redistribute it and/or
danky02 0:8ca9f71b386d 6 modify it under the terms of the GNU Lesser General Public
danky02 0:8ca9f71b386d 7 License as published by the Free Software Foundation; either
danky02 0:8ca9f71b386d 8 version 2.1 of the License, or (at your option) any later version.
danky02 0:8ca9f71b386d 9 */
danky02 0:8ca9f71b386d 10
danky02 0:8ca9f71b386d 11 /*
danky02 0:8ca9f71b386d 12 The methods are:
danky02 0:8ca9f71b386d 13
danky02 0:8ca9f71b386d 14 UltrasonicSensor - Class for manipulating Ultrasonic Sensor
danky02 0:8ca9f71b386d 15
danky02 0:8ca9f71b386d 16 attach(echo, trigger) - Attaches a Ultrasonic Sensor to an i/o pin,
danky02 0:8ca9f71b386d 17 default pins are D9 for echo and D8 for trigger.
danky02 0:8ca9f71b386d 18
danky02 0:8ca9f71b386d 19 read() - Read distance measured by the sensor.
danky02 0:8ca9f71b386d 20 */
danky02 0:8ca9f71b386d 21
danky02 0:8ca9f71b386d 22 #ifndef UltrasonicSensor_h
danky02 0:8ca9f71b386d 23 #define UltrasonicSensor_h
danky02 0:8ca9f71b386d 24
danky02 0:8ca9f71b386d 25 #include <mbed.h>
danky02 0:8ca9f71b386d 26
danky02 0:8ca9f71b386d 27 namespace mbed {
danky02 1:9d56714c1119 28 /** \addtogroup drivers */
danky02 1:9d56714c1119 29
danky02 1:9d56714c1119 30 /**
danky02 1:9d56714c1119 31 * @note UltrasonicSensor
danky02 1:9d56714c1119 32 *
danky02 1:9d56714c1119 33 * Example:
danky02 1:9d56714c1119 34 * @code
danky02 1:9d56714c1119 35 * #include "mbed.h"
danky02 1:9d56714c1119 36 * #include "UltrasonicSensor.h"
danky02 1:9d56714c1119 37 *
danky02 1:9d56714c1119 38 * UltrasonicSensor sensor(D9, D8); //declare echo pin and trigger pin (echo, trigger)
danky02 1:9d56714c1119 39
danky02 1:9d56714c1119 40 * int main(){
danky02 1:9d56714c1119 41 * sensor.begin(); //begin the ultrasonic sensor
danky02 1:9d56714c1119 42 * while(1) {
danky02 1:9d56714c1119 43 * float dist = sensor.read(); //read distance from ultrasonic sensor in cm
danky02 1:9d56714c1119 44 * printf("%f cm \n\r", dist);
danky02 1:9d56714c1119 45 * wait(0.5);
danky02 1:9d56714c1119 46 * }
danky02 1:9d56714c1119 47 * }
danky02 1:9d56714c1119 48 * @endcode
danky02 1:9d56714c1119 49 * @ingroup drivers
danky02 1:9d56714c1119 50 */
danky02 0:8ca9f71b386d 51
danky02 0:8ca9f71b386d 52 class UltrasonicSensor {
danky02 0:8ca9f71b386d 53
danky02 0:8ca9f71b386d 54 public:
danky02 0:8ca9f71b386d 55 /** Create a UltrasonicSensor connection to the specified pin
danky02 0:8ca9f71b386d 56 *
danky02 0:8ca9f71b386d 57 * @param pin echo pin to connect to
danky02 0:8ca9f71b386d 58 * @param pin trigger pin to connect to
danky02 0:8ca9f71b386d 59 */
danky02 0:8ca9f71b386d 60 UltrasonicSensor(PinName echo, PinName trigger);
danky02 0:8ca9f71b386d 61
danky02 0:8ca9f71b386d 62 /** begin of reading
danky02 0:8ca9f71b386d 63 *
danky02 0:8ca9f71b386d 64 * @param float set correction for the reader
danky02 0:8ca9f71b386d 65 */
danky02 0:8ca9f71b386d 66 void begin(float correction);
danky02 0:8ca9f71b386d 67 void begin(void);
danky02 0:8ca9f71b386d 68
danky02 0:8ca9f71b386d 69 /** Return the reader
danky02 0:8ca9f71b386d 70 *
danky02 0:8ca9f71b386d 71 * @returns float read the distance
danky02 0:8ca9f71b386d 72 */
danky02 0:8ca9f71b386d 73 float read(void);
danky02 0:8ca9f71b386d 74
danky02 0:8ca9f71b386d 75 protected:
danky02 0:8ca9f71b386d 76 void begin2(void);
danky02 0:8ca9f71b386d 77 DigitalOut _trigger;
danky02 0:8ca9f71b386d 78 DigitalIn _echo;
danky02 0:8ca9f71b386d 79 int distance;
danky02 0:8ca9f71b386d 80 int corr;
danky02 0:8ca9f71b386d 81 Timer sonar;
danky02 0:8ca9f71b386d 82 };
danky02 0:8ca9f71b386d 83 }
danky02 0:8ca9f71b386d 84
danky02 0:8ca9f71b386d 85 #endif