Use this repository for pilot an ultrasonic sensor
Fork of UltrasonicSensor by
UltrasonicSensor.h@1:9d56714c1119, 2018-01-15 (annotated)
- 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?
User | Revision | Line number | New 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 |