MDC2018のデータ量を削減したプログラムのマスタ側(メインマイコン)のプログラム

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を参照してください。

Committer:
DaichiArai
Date:
Wed Oct 03 17:18:11 2018 +0000
Revision:
3:acec9ffd0ac0
Child:
4:2ed7cf5feb7c
nitkk_mdc control program ver.20181004

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DaichiArai 3:acec9ffd0ac0 1 #ifndef mdc_h
DaichiArai 3:acec9ffd0ac0 2 #define mdc_h
DaichiArai 3:acec9ffd0ac0 3
DaichiArai 3:acec9ffd0ac0 4 #define MOTOR_FREE 0x00
DaichiArai 3:acec9ffd0ac0 5 #define MOTOR_FORWARD 0x01
DaichiArai 3:acec9ffd0ac0 6 #define MOTOR_BACK 0x02
DaichiArai 3:acec9ffd0ac0 7 #define MOTOR_STOP 0x03
DaichiArai 3:acec9ffd0ac0 8
DaichiArai 3:acec9ffd0ac0 9 #define SPD_MINUS 0
DaichiArai 3:acec9ffd0ac0 10 #define SPD_H 1
DaichiArai 3:acec9ffd0ac0 11 #define SPD_M 2
DaichiArai 3:acec9ffd0ac0 12 #define SPD_L 3
DaichiArai 3:acec9ffd0ac0 13 #define COUNT_MINUS 4
DaichiArai 3:acec9ffd0ac0 14 #define COUNT_SPIN 5
DaichiArai 3:acec9ffd0ac0 15 #define ANGLE_MINUS 6
DaichiArai 3:acec9ffd0ac0 16 #define ANGLE_H 7
DaichiArai 3:acec9ffd0ac0 17 #define ANGLE_M 8
DaichiArai 3:acec9ffd0ac0 18 #define ANGLE_L 9
DaichiArai 3:acec9ffd0ac0 19 #define NUM 4
DaichiArai 3:acec9ffd0ac0 20
DaichiArai 3:acec9ffd0ac0 21 #include "mbed.h"
DaichiArai 3:acec9ffd0ac0 22
DaichiArai 3:acec9ffd0ac0 23 extern Serial pc;
DaichiArai 3:acec9ffd0ac0 24 extern I2C i2c;
DaichiArai 3:acec9ffd0ac0 25
DaichiArai 3:acec9ffd0ac0 26 class motor{
DaichiArai 3:acec9ffd0ac0 27 public:
DaichiArai 3:acec9ffd0ac0 28 motor(int addr);
DaichiArai 3:acec9ffd0ac0 29 int move(int spd = 1000);
DaichiArai 3:acec9ffd0ac0 30 //enc-------------------------------------------------------------------
DaichiArai 3:acec9ffd0ac0 31 char data[10];
DaichiArai 3:acec9ffd0ac0 32 float spd;
DaichiArai 3:acec9ffd0ac0 33 int count;
DaichiArai 3:acec9ffd0ac0 34 float angle;
DaichiArai 3:acec9ffd0ac0 35 void read();
DaichiArai 3:acec9ffd0ac0 36
DaichiArai 3:acec9ffd0ac0 37 float spd_e();
DaichiArai 3:acec9ffd0ac0 38 int count_e();
DaichiArai 3:acec9ffd0ac0 39 float angle_e();
DaichiArai 3:acec9ffd0ac0 40 //-----------------------------------------------------------------------------
DaichiArai 3:acec9ffd0ac0 41 int address;
DaichiArai 3:acec9ffd0ac0 42 private:
DaichiArai 3:acec9ffd0ac0 43 char md_data[2];
DaichiArai 3:acec9ffd0ac0 44 void result();
DaichiArai 3:acec9ffd0ac0 45 int val;
DaichiArai 3:acec9ffd0ac0 46 };
DaichiArai 3:acec9ffd0ac0 47
DaichiArai 3:acec9ffd0ac0 48 #endif