Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of HC_SR04_Ultrasonic_Library by
ultrasonic.h
00001 #ifndef MBED_ULTRASONIC_H 00002 #define MBED_ULTRASONIC_H 00003 00004 #include "mbed.h" 00005 00006 /** ultrasonic class. 00007 * Used for HC-SR04 ultrasonic range sensor 00008 * 00009 * Example: 00010 * @code 00011 * #include "mbed.h" 00012 * #include "ultrasonic.h" 00013 * 00014 * ultrasonic usensor(PA_6, PA_7, 0.1, 0.25, &dist); 00015 * 00016 * int main() { 00017 * //start mesuring the distance 00018 * usensor.startUpdates(); 00019 * while(1){ 00020 * usensor.checkDistance(); 00021 * } 00022 * } 00023 * @endcode 00024 */ 00025 class ultrasonic 00026 { 00027 public: 00028 /**iniates the class with the specified trigger pin, echo pin, update speed and timeout 00029 * @param trigPin The "trigger" pin for the ultrasonic sensor. This is DigitalOut. 00030 * @param echoPin The "echo" pin for the ultrasonic sensor. This is InterruptIn. 00031 * @param updateSpeed How often the ultrasonic sensor pings and listens for a response. 00032 * @param timeout How long to wait before giving up on listening for a ping. 00033 **/ 00034 ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout); 00035 /**iniates the class with the specified trigger pin, echo pin, update speed, timeout and method to call when the distance changes 00036 * @param trigPin The "trigger" pin for the ultrasonic sensor. This is DigitalOut. 00037 * @param echoPin The "echo" pin for the ultrasonic sensor. This is InterruptIn. 00038 * @param updateSpeed How often the ultrasonic sensor pings and listens for a response. 00039 * @param timeout How long to wait before giving up on listening for a ping. 00040 * @param onUpdate(int) The function to be called when the distance is detected to have changed. 00041 **/ 00042 ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout, void onUpdate(int)); 00043 /** returns the last measured distance**/ 00044 int getCurrentDistance(void); 00045 /** auses measuring the distance**/ 00046 void pauseUpdates(void); 00047 /** tarts mesuring the distance**/ 00048 void startUpdates(void); 00049 /**attachs the method to be called when the distances changes 00050 * @param method(int) The function to be called when the distance is detected to have changed. 00051 */ 00052 void attachOnUpdate(void method(int)); 00053 /** 00054 * Method: 00055 * changes the speed at which updates are made 00056 * @param updateSpeed how often to update the ultrasonic sensor 00057 **/ 00058 void changeUpdateSpeed(float updateSpeed); 00059 /**gets whether the distance has been changed since the last call of isUpdated() or checkDistance()**/ 00060 int isUpdated(void); 00061 /**gets the speed at which updates are made**/ 00062 float getUpdateSpeed(void); 00063 /**call this as often as possible in your code, eg. at the end of a while(1) loop, 00064 and it will check whether the method you have attached needs to be called**/ 00065 void checkDistance(void); 00066 private: 00067 DigitalOut _trig; 00068 InterruptIn _echo; 00069 Timer _t; 00070 Timeout _tout; 00071 int _distance; 00072 float _updateSpeed; 00073 int start; 00074 int end; 00075 volatile int done; 00076 void (*_onUpdateMethod)(int); 00077 void _startT(void); 00078 void _updateDist(void); 00079 void _startTrig(void); 00080 float _timeout; 00081 int d; 00082 }; 00083 #endif
Generated on Wed Jul 13 2022 06:28:11 by
1.7.2
