DCモーターをArduinoで動かしてみる。その2
回路図
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が大きいほどモーターの回転が速くなる。
おわりに
次は複数のモーターを使って制御をしてみる。
本日はここまで。
- 作者: 高本孝頼
- 出版社/メーカー: リックテレコム
- 発売日: 2014/02/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
DCモーターをArduinoで動かしてみる。
単純に正転させるだけ。
ついにArduinoでモーターを回すことにした。今回使用したのはFA-130RAというモーターとモーターICのTA7291Pだ。あと1.5V乾電池を三本とタクトスイッチ。
モータードライバー TA7291P (2個入): 半導体 秋月電子通商 電子部品 ネット通販
DCモーター FA−130RA−2270: パーツ一般 秋月電子通商 電子部品 ネット通販
下のようにつなげる。
コードは以下の通り。
void setup(){ pinMode(10,OUTPUT); pinMode(11,OUTPUT); } void loop(){ digitalWrite(10,LOW); digitalWrite(11,HIGH); }
コンパイルしてコードを送ると、スイッチを押している時だけモーターが回転する。
モーターIC
TA7291Pを使えばモーターの正転、反転、静止を制御することができる。足が十本生えていて、欠けているほうから1番2番……10番と数えると、
1:GND(Arduino/GND端子)と共有
2:モータの端子へ接続
3:非接続
4:PWM端子(Arduino/アナログ出力端子)へ接続
5:信号用端子(Arduino/デジタル出力端子)へ接続
6:信号用端子(Arduino/デジタル出力端子)へ接続
7:5V電源(Arduino/5V端子)と共有
8:外部電源のプラス端子へ接続(乾電池など)
9:非接続
10:モータの端子へ接続
となっている。PWM端子に接続するとモーターの回転速度を変えることができる。
今日はここまで。
ArduinoとMATLABで制御系設計をはじめよう! (Physical Computing Lab)
- 作者: 平田光男
- 出版社/メーカー: TechShare
- 発売日: 2012/12/07
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 2回
- この商品を含むブログを見る
シリアル通信でArduinoからProcessingに情報を渡す
Processingを使おう
今回はProcessingとArduinoを連携させてシリアル通信を行う。ボタンを押すとLEDが点灯し「1」をシリアル通信でProcessing側に送り、ボタンを離すと「0」を送るコードを書く。
Processingはビジュアルデザインに特化したプログラミング言語で、初心者でも簡単に画像処理や図形描画が行える。
Arduinoを使った、はじめてのシリアル通信
シリアル通信ってなに?
今日はシリアル通信をやってみる。シリアル通信とはデータを1ビットごと送る通信のことらしい。僕も良く知らない。でも難しいことなんて知る必要はない。Arduinoの流儀のひとつ、「Circuit Bending(理論を知らなくてもごり押しでOK)」に習おう。
光センサを使ってLEDチカチカ
面白いセンサを使ってみよう
スイッチばかり使うのはどうかと思うので、光センサを使ってみることにした。今回使う、CdSセルというのはフォトレジスタの一種で、光が多く当たると抵抗が少なくなる特殊な性質を持っている。これを利用すれば暗くなったらLEDを点灯するということも可能になる。
ただLEDをチカチカさせるのも面白くないので、光量に応じて光るLEDが変わるような回路をつくってみた。明るいと青、暗いと赤、中間では緑のLEDが点く。さっそくやってみよう。