TODO FUNCIONA

Dependencies:   mbed Adafruit_GFX DS1820

Committer:
daniferca
Date:
Mon Dec 20 12:06:17 2021 +0000
Revision:
6:7e83bf7215d7
Parent:
0:d6db09ba7537
FINAL CON IGUAL QUE DIAGRAMA; ;

Who changed what in which revision?

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