Dependents:  

モータドライバコントローラ2018(MDC)

モータドライバコントローラ(MDC2018)は、2018年に開発されたモータドライバを制御するためのドライバ回路です。

基本データ

分類名称など
CPUSTM32F303K8T6
主用途3ピン型MDの駆動とABZ相出力型インクリメンタルエンコーダの読み取り
製作年2018年
通信方式I²C(Slave)・UART

使用方法

  • ST-LINK V2にmdc_simpleのソースコードを書き込むか、main.cppを参考にしてオリジナルのファームウェアを作成して、書き込みます。
  • I²Cコネクタ経由でメインマイコンから制御します。
  • 5V駆動インクリメンタルエンコーダとモータドライバ(2018年)制御端子を接続します。

詳しくは、readme.txtを参照してください。

Revision:
5:3693a9e7b2ad
Parent:
3:acec9ffd0ac0
Child:
6:6b81003405dd
--- a/mdc.cpp	Wed Oct 03 17:29:55 2018 +0000
+++ b/mdc.cpp	Tue Oct 09 13:40:44 2018 +0000
@@ -43,14 +43,12 @@
 float motor::angle_e(){
     val = i2c.read(address,data,10,false);
     count = ((data[COUNT_MINUS])?(-1):(1))*data[COUNT_SPIN];
-    angle = ((data[ANGLE_MINUS])?(-1):(1))*((double)(data[ANGLE_H])+((double)data[ANGLE_M]/100)+((double)data[ANGLE_L]/10000)+count*6.28);
-    return angle;
+    return((data[ANGLE_MINUS])?(-1):(1))*((double)(data[ANGLE_H])+((double)data[ANGLE_M]/100)+((double)data[ANGLE_L]/10000)+count*6.28);
 }
 
 void motor::read(){
     val = i2c.read(address,data,10,false);
-    //pc.printf("%x:%d\t",addr,val);
     spd = ((data[SPD_MINUS])?(-1):(1))*((double)(data[SPD_H])+((double)data[SPD_M]/100)+((double)data[SPD_L]/10000));
     count = ((data[COUNT_MINUS])?(-1):(1))*data[COUNT_SPIN];
-    angle = ((data[ANGLE_MINUS])?(-1):(1))*((double)(data[ANGLE_H])+((double)data[ANGLE_M]/100)+((double)data[ANGLE_L]/10000)+count*6.28);
+    angle = ((data[ANGLE_MINUS])?(-1):(1))*((double)(data[ANGLE_H])+((double)data[ANGLE_M]/100)+((double)data[ANGLE_L]/10000));
 }