あーちゃん制御

Dependencies:   FastPWM cal_PID mbed nucleo_rotary_encoder

omuni/speed_control/speed_control.hpp

Committer:
Akito914
Date:
2017-09-25
Revision:
1:d6e30aa7bc5b
Parent:
0:4346c5764e83

File content as of revision 1:d6e30aa7bc5b:

#ifndef __SPEED_CONTROL__
#define __SPEED_CONTROL__

#include "mbed.h"
#include "rotary_encoder_ab_phase.hpp"

class speed_control
{
private:
    rotary_encoder_ab_phase *e;
    Timer t;
    float kp, ki, kd;
    float f1, f2, diff[2], m, dm, j;
    float pulse_per_revol, cy_ms;
    float target_value, sensor_value;
    unsigned long time_counter;
    int32_t e_value[10], pre_counts;
    char duty;
    bool _rev;
    
public:
    speed_control(TIM_TypeDef *timer_type, float _pulse_per_revol, float _cy_ms, bool rev = false);
    void set_speed(float _target_value);
    void set_pid(float _kp, float _ki, float _kd);
    bool check_get_speed();
    char get_duty();
    float get_speed();
};

#endif