つくったブログ

ぼくがつくったもの。

DCモーターをArduinoで動かしてみる。その2

回路図

f:id:kyokucho1989:20130831141308j:plain

1番はArduinoのGND、電池のマイナス端子に。2番はモーターのプラス端子に。
4,5,6番はそれぞれArduinoの9,8,7番に接続する。モーターICの4番はPWM端子と接続しなければいけないのでArduino unoの場合は「~」マークがついている番号に接続すること。
7番はArduinoの5V端子に、8番は電池のプラス端子、10番はモーターのマイナス端子に接続する。

3番と9番にはなにも接続しない。


スケッチ

// モーター制御
const int motorA = 7;
const int motorB = 8;
const int PWM_mot = 9;
void setup(){
  pinMode(motorA,OUTPUT); //信号用ピン
  pinMode(motorB,OUTPUT); //信号用ピン
}

void loop(){
    digitalWrite(motorA,LOW);
    digitalWrite(motorB,LOW);
    delay(1000);
    digitalWrite(motorA,HIGH);
    digitalWrite(motorB,LOW);
    analogWrite(PWM_mot,100); 
    delay(3000);
    digitalWrite(motorA,LOW);
    digitalWrite(motorB,LOW);
    delay(1000);
    digitalWrite(motorA,LOW);
    digitalWrite(motorB,HIGH);
    analogWrite(PWM_mot,100); 
    delay(3000);
}


motorAとmotorBがともにLOW(0V)の場合、モーターは静止する。どちらかがHIGH(5V)の場合正転、または反転する。

またanalogWrite(pin番号,value)は指定したピン番号からアナログ波を出力する。valueは0~255まで。この場合、valueが大きいほどモーターの回転が速くなる。

おわりに

次は複数のモーターを使って制御をしてみる。


本日はここまで。

みんなのArduino入門

みんなのArduino入門

DCモーターをArduinoで動かしてみる。

単純に正転させるだけ。

http://instagram.com/p/df-BQWBBPd/

 ついにArduinoでモーターを回すことにした。今回使用したのはFA-130RAというモーターとモーターICのTA7291Pだ。あと1.5V乾電池を三本とタクトスイッチ。

モータードライバー TA7291P (2個入): 半導体 秋月電子通商 電子部品 ネット通販
DCモーター FA−130RA−2270: パーツ一般 秋月電子通商 電子部品 ネット通販


 下のようにつなげる。

 http://instagram.com/p/djMAYDhBB0/

 コードは以下の通り。

 void setup(){
   pinMode(10,OUTPUT);
   pinMode(11,OUTPUT);
}
 void loop(){
   digitalWrite(10,LOW);
   digitalWrite(11,HIGH);
}

 コンパイルしてコードを送ると、スイッチを押している時だけモーターが回転する。

モーターIC

http://instagram.com/p/dqvPiVhBJ4/

 TA7291Pを使えばモーターの正転、反転、静止を制御することができる。足が十本生えていて、欠けているほうから1番2番……10番と数えると、

 1:GND(Arduino/GND端子)と共有
 2:モータの端子へ接続
 3:非接続
 4:PWM端子(Arduino/アナログ出力端子)へ接続
 5:信号用端子(Arduino/デジタル出力端子)へ接続
 6:信号用端子(Arduino/デジタル出力端子)へ接続
 7:5V電源(Arduino/5V端子)と共有
 8:外部電源のプラス端子へ接続(乾電池など)
 9:非接続
10:モータの端子へ接続

(引用元:建築発明工作ゼミ2008: Arduino 小型DCモータ/TA7291P

となっている。PWM端子に接続するとモーターの回転速度を変えることができる。

今日はここまで。

ArduinoとMATLABで制御系設計をはじめよう! (Physical Computing Lab)

ArduinoとMATLABで制御系設計をはじめよう! (Physical Computing Lab)

シリアル通信でArduinoからProcessingに情報を渡す

Processingを使おう

 今回はProcessingとArduinoを連携させてシリアル通信を行う。ボタンを押すとLEDが点灯し「1」をシリアル通信でProcessing側に送り、ボタンを離すと「0」を送るコードを書く。

 Processingはビジュアルデザインに特化したプログラミング言語で、初心者でも簡単に画像処理や図形描画が行える。

続きを読む

Arduinoを使った、はじめてのシリアル通信

シリアル通信ってなに?


 今日はシリアル通信をやってみる。シリアル通信とはデータを1ビットごと送る通信のことらしい。僕も良く知らない。でも難しいことなんて知る必要はない。Arduinoの流儀のひとつ、「Circuit Bending(理論を知らなくてもごり押しでOK)」に習おう。

続きを読む

光センサを使ってLEDチカチカ

面白いセンサを使ってみよう

 スイッチばかり使うのはどうかと思うので、光センサを使ってみることにした。今回使う、CdSセルというのはフォトレジスタの一種で、光が多く当たると抵抗が少なくなる特殊な性質を持っている。これを利用すれば暗くなったらLEDを点灯するということも可能になる。

フォトレジスタ - Wikipedia

 ただLEDをチカチカさせるのも面白くないので、光量に応じて光るLEDが変わるような回路をつくってみた。明るいと青、暗いと赤、中間では緑のLEDが点く。さっそくやってみよう。

続きを読む