Library for using HC-SR04 with some API Documentation added
Fork of HC_SR04_Ultrasonic_Library by
ultrasonic.h
- Committer:
- knotbeer
- Date:
- 2016-04-30
- Revision:
- 6:c0f8b860f55d
- Parent:
- 5:182e800b81f0
File content as of revision 6:c0f8b860f55d:
#ifndef MBED_ULTRASONIC_H #define MBED_ULTRASONIC_H #include "mbed.h" /** ultrasonic class. * Used for HC-SR04 ultrasonic range sensor * * Example: * @code * #include "mbed.h" * #include "ultrasonic.h" * * ultrasonic usensor(PA_6, PA_7, 0.1, 0.25, &dist); * * int main() { * //start mesuring the distance * usensor.startUpdates(); * while(1){ * usensor.checkDistance(); * } * } * @endcode */ class ultrasonic { public: /**iniates the class with the specified trigger pin, echo pin, update speed and timeout * @param trigPin The "trigger" pin for the ultrasonic sensor. This is DigitalOut. * @param echoPin The "echo" pin for the ultrasonic sensor. This is InterruptIn. * @param updateSpeed How often the ultrasonic sensor pings and listens for a response. * @param timeout How long to wait before giving up on listening for a ping. **/ ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout); /**iniates the class with the specified trigger pin, echo pin, update speed, timeout and method to call when the distance changes * @param trigPin The "trigger" pin for the ultrasonic sensor. This is DigitalOut. * @param echoPin The "echo" pin for the ultrasonic sensor. This is InterruptIn. * @param updateSpeed How often the ultrasonic sensor pings and listens for a response. * @param timeout How long to wait before giving up on listening for a ping. * @param onUpdate(int) The function to be called when the distance is detected to have changed. **/ ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout, void onUpdate(int)); /** returns the last measured distance**/ int getCurrentDistance(void); /** auses measuring the distance**/ void pauseUpdates(void); /** tarts mesuring the distance**/ void startUpdates(void); /**attachs the method to be called when the distances changes * @param method(int) The function to be called when the distance is detected to have changed. */ void attachOnUpdate(void method(int)); /** * Method: * changes the speed at which updates are made * @param updateSpeed how often to update the ultrasonic sensor **/ void changeUpdateSpeed(float updateSpeed); /**gets whether the distance has been changed since the last call of isUpdated() or checkDistance()**/ int isUpdated(void); /**gets the speed at which updates are made**/ float getUpdateSpeed(void); /**call this as often as possible in your code, eg. at the end of a while(1) loop, and it will check whether the method you have attached needs to be called**/ void checkDistance(void); private: DigitalOut _trig; InterruptIn _echo; Timer _t; Timeout _tout; int _distance; float _updateSpeed; int start; int end; volatile int done; void (*_onUpdateMethod)(int); void _startT(void); void _updateDist(void); void _startTrig(void); float _timeout; int d; }; #endif