モータドライバコントローラ2018(MDC)
モータドライバコントローラ(MDC2018)は、2018年に開発されたモータドライバを制御するためのドライバ回路です。
基本データ
分類 | 名称など |
CPU | STM32F303K8T6 |
主用途 | 3ピン型MDの駆動とABZ相出力型インクリメンタルエンコーダの読み取り |
製作年 | 2018年 |
通信方式 | I²C(Slave)・UART |
使用方法
- ST-LINK V2にmdc_simpleのソースコードを書き込むか、main.cppを参考にしてオリジナルのファームウェアを作成して、書き込みます。
- I²Cコネクタ経由でメインマイコンから制御します。
- 5V駆動インクリメンタルエンコーダとモータドライバ(2018年)制御端子を接続します。
詳しくは、readme.txtを参照してください。
Diff: mdc.h
- Revision:
- 9:a3a2fb1a3ba7
- Parent:
- 7:6d3ea87a81c7
- Child:
- 10:1bbe0d41813e
diff -r f62e19b0c76e -r a3a2fb1a3ba7 mdc.h --- a/mdc.h Thu Apr 11 02:38:27 2019 +0000 +++ b/mdc.h Tue Apr 30 04:54:26 2019 +0000 @@ -16,34 +16,44 @@ #define ANGLE_H 7 #define ANGLE_M 8 #define ANGLE_L 9 -#define NUM 4 +#define NUM 4 + +#define DPI 6.2832 #include "mbed.h" -extern I2C i2c; - class motor{ public: - motor(int addr); - int move(int spd = 1000); - void reset_enc(); + motor(I2C &i2c, int addr); + int move(float pwm = 1000); + void reset(); //enc------------------------------------------------------------------- - char data[10]; - float spd; int count; - float angle; - void read(); + float angle(); + float spd(); + float position(); + + //旧作との互換性を確保するためのメソッド------ float spd_e(); - int count_e(); float angle_e(); -//----------------------------------------------------------------------------- - int address; + float position_e(); + //-------------------------------------- +//----------------------------------------------------------------------------- private: char data_reset[2]; char md_data[2]; + char data[10]; + void result(); + int write_pwm; int val; + int address; + + float encoder_spd; + float position_angle; + + I2C mdc_i2c; }; #endif \ No newline at end of file