pid.h 817 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef _PID_H_
  2. #define _PID_H_
  3. #include "Arduino.h"
  4. class PID {
  5. public:
  6. //commonly used functions **************************************************************************
  7. PID(float point, float kp, float ki, float kd);
  8. float Update(float input);
  9. void SetOutputLimits(float max_out, float min_out);
  10. void SetIntegralLimits(float max_out, float min_out);
  11. void SetPoint(float point);
  12. void SetDirection(int8_t dir);
  13. void UpdateParam(float kp, float ki, float kd);
  14. void SetIntegral(float integral);
  15. void SetIntegralOffset(float offset);
  16. float error_integral;
  17. private:
  18. float _kp, _ki, _kd;
  19. float _point;
  20. float error_integral_offset;
  21. float input_last;
  22. float error;
  23. float output_max, output_min;
  24. float integral_max, integral_min;
  25. int8_t _dir;
  26. };
  27. #endif