あーちゃん制御

Dependencies:   FastPWM cal_PID mbed nucleo_rotary_encoder

Committer:
Akito914
Date:
Mon Sep 25 08:23:24 2017 +0000
Revision:
1:d6e30aa7bc5b
Parent:
0:4346c5764e83
cal_PID???????

Who changed what in which revision?

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