omuni

Dependencies:   mbed nucleo_rotary_encoder

Committer:
sawai
Date:
Thu Aug 17 03:49:34 2017 +0000
Revision:
0:6da7d0e457a2
omuni

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sawai 0:6da7d0e457a2 1 #ifndef __SPEED_CONTROL__
sawai 0:6da7d0e457a2 2 #define __SPEED_CONTROL__
sawai 0:6da7d0e457a2 3
sawai 0:6da7d0e457a2 4 #include "mbed.h"
sawai 0:6da7d0e457a2 5 #include "rotary_encoder_ab_phase.hpp"
sawai 0:6da7d0e457a2 6
sawai 0:6da7d0e457a2 7 class speed_control
sawai 0:6da7d0e457a2 8 {
sawai 0:6da7d0e457a2 9 private:
sawai 0:6da7d0e457a2 10 rotary_encoder_ab_phase *e;
sawai 0:6da7d0e457a2 11 Timer t;
sawai 0:6da7d0e457a2 12 float kp, ki, kd;
sawai 0:6da7d0e457a2 13 float f1, f2, diff[2], m, dm, j;
sawai 0:6da7d0e457a2 14 float pulse_per_revol, cy_ms;
sawai 0:6da7d0e457a2 15 float target_value, sensor_value;
sawai 0:6da7d0e457a2 16 unsigned long time_counter;
sawai 0:6da7d0e457a2 17 int32_t e_value[10], pre_counts;
sawai 0:6da7d0e457a2 18 char duty;
sawai 0:6da7d0e457a2 19
sawai 0:6da7d0e457a2 20 public:
sawai 0:6da7d0e457a2 21 speed_control(TIM_TypeDef *timer_type, float _pulse_per_revol, float _cy_ms);
sawai 0:6da7d0e457a2 22 void set_speed(float _target_value);
sawai 0:6da7d0e457a2 23 void set_pid(float _kp, float _ki, float _kd);
sawai 0:6da7d0e457a2 24 bool check_get_speed();
sawai 0:6da7d0e457a2 25 char get_duty();
sawai 0:6da7d0e457a2 26 float get_speed();
sawai 0:6da7d0e457a2 27 };
sawai 0:6da7d0e457a2 28
sawai 0:6da7d0e457a2 29 #endif