Wireless and Multimedia final project mbed code

Dependencies:   ESP8266 mbed

Committer:
abdeokar23
Date:
Fri Feb 09 01:05:40 2024 +0000
Revision:
6:409e600bbd4e
Parent:
5:17a7d2402ed0
git update

Who changed what in which revision?

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