Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Parallax Ping))) Sensor Wrapper :: Header

By: a guest on Jan 19th, 2012  |  syntax: C++  |  size: 2.08 KB  |  views: 43  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /**
  2.  * Ping.h :: A library for using a Parallax PING))) sensor in robotic applications.
  3.  *
  4.  * @author Tom Malone <tmalone+arduino.software@gmail.com>
  5.  * @copyright Released into the public domain.
  6.  */
  7.  
  8. #ifndef Ping_h
  9. #define Ping_h
  10.  
  11. #if ARDUINO < 100
  12. #include <WProgram.h>
  13. #else
  14. #include <Arduino.h>
  15. #endif
  16.  
  17. #include <string.h>
  18.  
  19. class Ping {
  20.  
  21.     private:
  22.             uint8_t _pin;       // Which pin the Ping))) sensor is connected to.
  23.             String _distanceUnit;    // The unit of measurement for returning distance to obstacle.
  24.                                                                                                                                     // Possible units: cm, in, or raw.
  25.                                                                                                                                     // cm == centimeters
  26.                                                                                                                                     // in == inches
  27.                                                                                                                                     // raw == return the raw time of the pulse duration in microseconds
  28.             float _centimetersPerSecond;        // The speed of sound we're using (because its variable, by a number of factors), converted to cm/second.
  29.             int _collisionThreshold;    // How close the robot is allowed to get to an obstacle before forcing it to turn away.
  30.             float _centimetersToInches(float cmValue);  // Converts centimeters to inches.
  31.             unsigned long _pulseDuration;       // Stores the time it takes the ultrasound to travel to the obstacle and back.
  32.            
  33.     public:
  34.             Ping(uint8_t pin, String distanceUnit);     // The constructor method
  35.             unsigned long ping();       // Sends the actual Ping))) pulse.
  36.             void activate();    // The activation method take care of activating the Ping))) sensor with a brief PWM pulse.
  37.             uint8_t getCollisionThreshold();    // Returns the value of _collisionThreshold.
  38.             void setCollisionThreshold(uint8_t threshold);      // Sets the value of _collisionThreshold.
  39.             uint16_t pulseTimeToCentimeters(unsigned long pulseDuration);       // Converts the pulse duration to centimeters
  40.             float pulseTimeToInches(unsigned long pulseDuration);       // Converts the pulse duration to inches.
  41.             String getDistanceUnit();   // Gets the distance unit the user wants his distances to be returned in.
  42.             String setDistanceUnit(String distanceUnit);        // Sets the distance unit the user wants his distances to be turned in.
  43. };
  44.  
  45. #endif