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:29:55 2018 +0000
Revision:
4:2ed7cf5feb7c
Parent:
3:acec9ffd0ac0
Child:
7:6d3ea87a81c7
Deleted "extern Serial pc"

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 3:acec9ffd0ac0 29 //enc-------------------------------------------------------------------
DaichiArai 3:acec9ffd0ac0 30 char data[10];
DaichiArai 3:acec9ffd0ac0 31 float spd;
DaichiArai 3:acec9ffd0ac0 32 int count;
DaichiArai 3:acec9ffd0ac0 33 float angle;
DaichiArai 3:acec9ffd0ac0 34 void read();
DaichiArai 3:acec9ffd0ac0 35
DaichiArai 3:acec9ffd0ac0 36 float spd_e();
DaichiArai 3:acec9ffd0ac0 37 int count_e();
DaichiArai 3:acec9ffd0ac0 38 float angle_e();
DaichiArai 3:acec9ffd0ac0 39 //-----------------------------------------------------------------------------
DaichiArai 3:acec9ffd0ac0 40 int address;
DaichiArai 3:acec9ffd0ac0 41 private:
DaichiArai 3:acec9ffd0ac0 42 char md_data[2];
DaichiArai 3:acec9ffd0ac0 43 void result();
DaichiArai 3:acec9ffd0ac0 44 int val;
DaichiArai 3:acec9ffd0ac0 45 };
DaichiArai 3:acec9ffd0ac0 46
DaichiArai 3:acec9ffd0ac0 47 #endif