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

readme.txt

Committer:
DaichiArai
Date:
2019-04-30
Revision:
9:a3a2fb1a3ba7
Parent:
8:f62e19b0c76e
Child:
10:1bbe0d41813e

File content as of revision 9:a3a2fb1a3ba7:

1.インスタンス生成方法
class motor motorname(int address);

2.モータの駆動方法
int move(float pwm);
    ・-1 ~ -0.01     :モータ逆回転
    ・0.01 ~  1      :モータ正回転
    ・0              :モータ停止(ブレーキ)
    ・引数無し(空白):モータフリー(何もしない)
返り値:通信結果(0:成功,1:失敗)

3.エンコーダの角度と角速度の読み取り(単位はrad基準)
    float spd();        角速度を読み取る.返り値:角速度(rad/s)
    float angle();      角度を読み取る.オーバーフロー注意.返り値:角度(rad)
    float position();   1周のうちの自己位置を求める。正の値しか返さない。返り値:角度(rad)
    int count;          angle_e()関数が最後に呼び出された時点での回転数。返り値:回転数

//サンプル----------------------------------------------------------------------
#include "mbed.h"
#include "mdc.h"

Serial pc(USBTX,USBRX,115200);
I2C i2c_encoder(D4,D5);

class motor motor1(i2c_encoder,0x20);
class motor motor2(i2c_encoder,0x22);

int main(void){
    while(1){
        motor1.move(0.6);
        motor2.move();
        
        pc.printf("motor1.spd = %.3f\t",motor1.spd());
        pc.printf("motor1.angle = %.3f\t",motor1.angle());
        pc.printf("motor1.position = %.3f\t",motor1.position());
        pc.printf("\n");
    }
}