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:
Tue Oct 16 09:58:03 2018 +0000
Revision:
7:6d3ea87a81c7
Parent:
4:2ed7cf5feb7c
Child:
9:a3a2fb1a3ba7
mdc (20181016)

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 I2C i2c;
DaichiArai 3:acec9ffd0ac0 24
DaichiArai 3:acec9ffd0ac0 25 class motor{
DaichiArai 3:acec9ffd0ac0 26 public:
DaichiArai 3:acec9ffd0ac0 27 motor(int addr);
DaichiArai 3:acec9ffd0ac0 28 int move(int spd = 1000);
DaichiArai 7:6d3ea87a81c7 29 void reset_enc();
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 7:6d3ea87a81c7 43 char data_reset[2];
DaichiArai 3:acec9ffd0ac0 44 char md_data[2];
DaichiArai 3:acec9ffd0ac0 45 void result();
DaichiArai 3:acec9ffd0ac0 46 int val;
DaichiArai 3:acec9ffd0ac0 47 };
DaichiArai 3:acec9ffd0ac0 48
DaichiArai 3:acec9ffd0ac0 49 #endif