Library for Seed Groove Ultrasonic range / distance meter. See also https://github.com/Seeed-Studio/Grove_Ultrasonic_Ranger/blob/master/Ultrasonic.h and http://www.seeedstudio.com/wiki/Grove_-_Ultrasonic_Ranger
Dependents: Seed_Groove_Ultrasonic_Distance ECE4180Finalproject
Revision 0:c7db0e6e8f0e, committed 2014-11-01
- Comitter:
- grassel
- Date:
- Sat Nov 01 21:00:57 2014 +0000
- Commit message:
- created library
Changed in this revision
Ultrasonic.cpp | Show annotated file Show diff for this revision Revisions of this file |
Ultrasonic.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r c7db0e6e8f0e Ultrasonic.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Ultrasonic.cpp Sat Nov 01 21:00:57 2014 +0000 @@ -0,0 +1,72 @@ +/* + * Ultrasonic.cpp + * A library for ultrasonic ranger + * + * Copyright (c) 2012 seeed technology inc. + * Website : www.seeed.cc + * Author : LG, FrankieChu + * Create Time: Jan 17,2013 + * + * Change Log : + * adapted to ARM mbed by Guido Grassel, Oct 2014 + * + * The MIT License (MIT) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "Ultrasonic.h" + +Ultrasonic::Ultrasonic(PinName pin) + : _pin(pin) +{ +} + +/*The measured distance from the range 0 to 400 Centimeters*/ +long Ultrasonic::measureInCentimeters(void) +{ + _pin.output(); + _pin = 0; // digitalWrite(_pin, LOW); + wait_us(2); // delayMicroseconds(2); + _pin = 1; // digitalWrite(_pin, HIGH); + + wait_us(5); //delayMicroseconds(5); + _pin = 0; //digitalWrite(_pin,LOW); + _pin.input(); // pinMode(_pin,INPUT); + long duration; + duration = pulseIn(); + long RangeInCentimeters; + RangeInCentimeters = duration/29/2; + return RangeInCentimeters; +} + +long Ultrasonic::pulseIn(void) { + Timer tmr; + _pin.input(); + while (_pin!=1) { + ; // wait for high + } + tmr.start(); + while (_pin!=0) { + ; // wait for low + } + int duration = tmr.read_us(); + tmr.stop(); + return (long) duration; +}
diff -r 000000000000 -r c7db0e6e8f0e Ultrasonic.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Ultrasonic.h Sat Nov 01 21:00:57 2014 +0000 @@ -0,0 +1,49 @@ +/* + * Ultrasonic.cpp + * A library for ultrasonic ranger + * + * Copyright (c) 2012 seeed technology inc. + * Website : www.seeed.cc + * Author : LG, FrankieChu + * Create Time: Jan 17,2013 + * + * Change Log : + * adapted to ARM mbed by Guido Grassel, Oct 2014 + * + * The MIT License (MIT) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef Ultrasonic_H +#define Ultrasonic_H + +#include "mbed.h" + +class Ultrasonic +{ + public: + Ultrasonic(PinName pin); + long measureInCentimeters(void); + private: + long pulseIn(void); + DigitalInOut _pin; +}; + +#endif \ No newline at end of file