Intel EdisonでDCモータ制御してみた

投稿者: | 2015年7月27日

Intel EdisonでDCモータ制御してみた

せっかくIntel Edison Kit for Arduino を購入したので、電子工作に挑戦してみる。
真面目に取り組むのは初めてなのでもっと良い方法があるし、間違っているかもしれません。

今回は、Intel Edisonとして開発するのではなく、Arduinoとして扱うのでEdisonらしいところは全くないです。

開発環境のセットアップ

Intelの公式に詳細は譲るとして、自分は下記の点に気が付かなくてあたふたしました。

Arduino公式サイトからダウンロードして適宜インストールします。
Tool -> Board -> Board Manager を起動して、「686」で検索します。すると以下のようにEdison用のパッケージが表示されるのでインストールしてください。

BoardManager

プログラムの転送方法

Intelの公式に、ボード上にあるLEDを利用した、「Lチカ」のサンプルの例が、こちらに載っていて参考になります。

利用した部品等

  • 可変抵抗(10kΩ)
  • TA7291P(データシート)
  • 電池ボックス(4つ入るやつ)
  • DCモータ

TA7291Pは、VrefでVoutの電圧を制御できるので抵抗をつないで遊んでも良さそうと思ったので可変抵抗を使ってみました。
バイパスコンデンサとかプルアップ抵抗などは検討してません。
モータへの電圧を安定させるならデータシートにある応用回路のようにモータの前にコンデンサと抵抗を適宜入れる必要があるのでしょう。
TA7291Pは1.0A(平均)とかを想定しているようですが、EdisonとかArduinoでそんな電流は流せないので過電流の対策は特にしていません。

作った回路は以下のようなものです。

DCモータ制御_ブレッドボード

作成したプログラム

以下のようなコードで制御してみました。

void setup(){
  pinMode(1,OUTPUT); 
  pinMode(2,OUTPUT); 
}

void loop(){
  int val=analogRead(0)/2;

  if(val>=255 && val<=256){
    digitalWrite(1,LOW);
    digitalWrite(2,LOW);
  }else if(val>256){       
    digitalWrite(1,HIGH);
    digitalWrite(2,LOW);
    analogWrite(3,val-256); 
  }else{                   
    digitalWrite(1,LOW);
    digitalWrite(2,HIGH);
    analogWrite(3,255-val); 
    }    
  }

写真とか

こんな感じのArduinoシールド作りました

Arduinoシールド

シールドにする際には、可変抵抗はオミットしました。
モータ制御するならWifiかBluetoothで外部から制御しようと思ったからです。

感想

とりあえずちゃんとDCモータ制御できたのでよかった(小並感)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です