pid.h 843 B

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