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:
9:a3a2fb1a3ba7
Parent:
7:6d3ea87a81c7
Child:
10:1bbe0d41813e
--- 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