フォト
2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

« 初めてのPICマイコンの利用(Lチカ) | トップページ | DRV8830を使ったDCモーターの制御(3) »

2014年12月23日 (火)

DRV8830を使ったDCモーターの制御(2)

この前、arduino Unoにて試したDCモーター制御を
ATtiny13A(arduino IDE環境利用)に置き換えました。問題なく動作しました。

I2C接続は「ATtiny13AでI2C接続キャラクタLCDを利用する(3)」で作成したライブラリを
利用しました。

Dscn3373

スケッチのサイズは728バイトです。
最終的に以前試した赤外線リモコンで操作したいのですが、
プログラムサイズを1024バイトにおさめるのに苦労しそうです。

スケッチ

#include <tinyI2C.h>

// I2Cアドレス
#define DRV_ADR   0xC8  // DRV8830のI2Cアドレス
#define CTR_ADR   0x00  // CONTROLレジスタのサブアドレス
#define FLT_ADR   0x01  // FAULTレジスタのアドレス

// ブリッジ制御
#define M_STANBY  B00   // スタンバイ   
#define M_REVERSE B01   // 逆転
#define M_NORMAL  B10   // 正転
#define M_BRAKE   B11   // ブレーキ

// 電圧定義
#define MAX_VSET 0x15   // 1.69V
#define MIN_VSET 0x09   // 0.72V

// 制御コマンド送信
void write_vset(byte vs, byte ctr) {
  tinyI2C_Start();
  tinyI2C_Write(DRV_ADR);
  tinyI2C_ReadBit();
  tinyI2C_Write(CTR_ADR);
  tinyI2C_ReadBit();
  tinyI2C_Write( ctr + (vs<<2) );
  tinyI2C_ReadBit();
  tinyI2C_Stop();
}

void setup() {
  tinyI2C_Init();
}

void loop() {
  // スタンバイ
  write_vset(MIN_VSET, M_STANBY); 
  delay(1000);
  
  // 順方向 徐々にスピードを上げる
  for (byte i = MIN_VSET; i <= MAX_VSET; i++) {    
    write_vset(i, M_NORMAL);
    delay(1000);
  }
  
  // 5秒間最大電圧  
  delay(5000);
  
  // 順方向 徐々にスピードを下げる
  for (byte i = MAX_VSET; i >= MIN_VSET; i--) {    
    write_vset(i, M_NORMAL);
    delay(1000);
  }

  // 5秒間最小電圧  
  delay(5000);

  // ブレーキ      
  write_vset(MIN_VSET, M_BRAKE);
  delay(5000);

  // 逆方向 徐々にスピードを上げる
  for (byte i = MIN_VSET; i <= MAX_VSET; i++) {    
    write_vset(i, M_REVERSE);
    delay(1000);
  }
  
  // 5秒間最大電圧  
  delay(5000);
  
  // 逆方向 徐々にスピードを下げる
  for (byte i = MAX_VSET; i >= MIN_VSET; i--) {    
    write_vset(i, M_REVERSE);
    delay(1000);
  }

  // 5秒間最小電圧  
  delay(5000);

  // ブレーキ      
  write_vset(MIN_VSET, M_BRAKE);
  delay(5000);
}

「DRV8830を使ったDCモーターの制御(3)」に続きます。

« 初めてのPICマイコンの利用(Lチカ) | トップページ | DRV8830を使ったDCモーターの制御(3) »

arduino」カテゴリの記事

ATtiny13A」カテゴリの記事

AVR」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/60856014

この記事へのトラックバック一覧です: DRV8830を使ったDCモーターの制御(2):

« 初めてのPICマイコンの利用(Lチカ) | トップページ | DRV8830を使ったDCモーターの制御(3) »