not mine

Dependents:   EE3023DistanceSensor EE3023DistanceSensor3 EE3023CarSafetySystem EE3023CarSafetySystem

Committer:
fiachra
Date:
Wed Dec 16 17:17:42 2020 +0000
Revision:
0:68251ad692dd
libraries created;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fiachra 0:68251ad692dd 1 /* Copyright (c) 2013 Prabhu Desai
fiachra 0:68251ad692dd 2 * pdtechworld@gmail.com
fiachra 0:68251ad692dd 3 *
fiachra 0:68251ad692dd 4 *
fiachra 0:68251ad692dd 5 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
fiachra 0:68251ad692dd 6 * and associated documentation files (the "Software"), to deal in the Software without restriction,
fiachra 0:68251ad692dd 7 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
fiachra 0:68251ad692dd 8 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
fiachra 0:68251ad692dd 9 * furnished to do so, subject to the following conditions:
fiachra 0:68251ad692dd 10 *
fiachra 0:68251ad692dd 11 * The above copyright notice and this permission notice shall be included in all copies or
fiachra 0:68251ad692dd 12 * substantial portions of the Software.
fiachra 0:68251ad692dd 13 *
fiachra 0:68251ad692dd 14 * For more details on the sensor :
fiachra 0:68251ad692dd 15 * http://www.elecfreaks.com/store/hcsr04-ultrasonic-sensor-distance-measuring-module-p-91.html?zenid=pgm8pgnvaodbe36dibq5s1soi3
fiachra 0:68251ad692dd 16 *
fiachra 0:68251ad692dd 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
fiachra 0:68251ad692dd 18 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
fiachra 0:68251ad692dd 19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
fiachra 0:68251ad692dd 20 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
fiachra 0:68251ad692dd 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
fiachra 0:68251ad692dd 22 */
fiachra 0:68251ad692dd 23
fiachra 0:68251ad692dd 24 #ifndef MBED_HCSR04_H
fiachra 0:68251ad692dd 25 #define MBED_HCSR04_H
fiachra 0:68251ad692dd 26
fiachra 0:68251ad692dd 27 #include "mbed.h"
fiachra 0:68251ad692dd 28
fiachra 0:68251ad692dd 29 /** HCSR04 Class(es)
fiachra 0:68251ad692dd 30 */
fiachra 0:68251ad692dd 31
fiachra 0:68251ad692dd 32 class HCSR04
fiachra 0:68251ad692dd 33 {
fiachra 0:68251ad692dd 34 public:
fiachra 0:68251ad692dd 35 /** Create a HCSR04 object connected to the specified pin
fiachra 0:68251ad692dd 36 * @param pin i/o pin to connect to
fiachra 0:68251ad692dd 37 */
fiachra 0:68251ad692dd 38 HCSR04(PinName TrigPin,PinName EchoPin);
fiachra 0:68251ad692dd 39 ~HCSR04();
fiachra 0:68251ad692dd 40
fiachra 0:68251ad692dd 41 /** Return the distance from obstacle in cm
fiachra 0:68251ad692dd 42 * @param distance in cms and returns -1, in case of failure
fiachra 0:68251ad692dd 43 */
fiachra 0:68251ad692dd 44 unsigned int get_dist_cm(void);
fiachra 0:68251ad692dd 45 /** Return the pulse duration equal to sonic waves travelling to obstacle and back to receiver.
fiachra 0:68251ad692dd 46 * @param pulse duration in microseconds.
fiachra 0:68251ad692dd 47 */
fiachra 0:68251ad692dd 48 unsigned int get_pulse_us(void);
fiachra 0:68251ad692dd 49 /** Generates the trigger pulse of 10us on the trigger PIN.
fiachra 0:68251ad692dd 50 */
fiachra 0:68251ad692dd 51 void start(void );
fiachra 0:68251ad692dd 52 void isr_rise(void);
fiachra 0:68251ad692dd 53 void isr_fall(void);
fiachra 0:68251ad692dd 54 void fall (void (*fptr)(void));
fiachra 0:68251ad692dd 55 void rise (void (*fptr)(void));
fiachra 0:68251ad692dd 56
fiachra 0:68251ad692dd 57
fiachra 0:68251ad692dd 58
fiachra 0:68251ad692dd 59 private:
fiachra 0:68251ad692dd 60
fiachra 0:68251ad692dd 61 Timer pulsetime;
fiachra 0:68251ad692dd 62 DigitalOut trigger;
fiachra 0:68251ad692dd 63 InterruptIn echo;
fiachra 0:68251ad692dd 64 unsigned int pulsedur;
fiachra 0:68251ad692dd 65 unsigned int distance;
fiachra 0:68251ad692dd 66 };
fiachra 0:68251ad692dd 67
fiachra 0:68251ad692dd 68 #endif