CapacitiveSensor.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. CapacitiveSense.h v.04 - Capacitive Sensing Library for 'duino / Wiring
  3. Copyright (c) 2008 Paul Bagder All rights reserved.
  4. Version 04 by Paul Stoffregen - Arduino 1.0 compatibility, issue 146 fix
  5. vim: set ts=4:
  6. */
  7. // ensure this library description is only included once
  8. #ifndef CapacitiveSensor_h
  9. #define CapacitiveSensor_h
  10. #if ARDUINO >= 100
  11. #include "Arduino.h"
  12. #else
  13. #include "WProgram.h"
  14. #endif
  15. // library interface description
  16. class CapacitiveSensor
  17. {
  18. // user-accessible "public" interface
  19. public:
  20. // methods
  21. CapacitiveSensor(uint8_t sendPin, uint8_t receivePin);
  22. long capacitiveSensorRaw(uint8_t samples);
  23. long capacitiveSensor(uint8_t samples);
  24. void set_CS_Timeout_Millis(unsigned long timeout_millis);
  25. void reset_CS_AutoCal();
  26. void set_CS_AutocaL_Millis(unsigned long autoCal_millis);
  27. // library-accessible "private" interface
  28. private:
  29. // variables
  30. int error;
  31. unsigned long leastTotal;
  32. unsigned int loopTimingFactor;
  33. unsigned long CS_Timeout_Millis;
  34. unsigned long CS_AutocaL_Millis;
  35. unsigned long lastCal;
  36. unsigned long total;
  37. uint8_t sBit; // send pin's ports and bitmask
  38. volatile uint8_t *sReg;
  39. volatile uint8_t *sOut;
  40. uint8_t rBit; // receive pin's ports and bitmask
  41. volatile uint8_t *rReg;
  42. volatile uint8_t *rIn;
  43. volatile uint8_t *rOut;
  44. // methods
  45. int SenseOneCycle(void);
  46. };
  47. #endif