DCモーター制御
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sef662617a094ec9f/image/i5f342894355a311c/version/1629098662/image.jpg)
盆休み前から雨天が続いているので、盆休み中に予定していた塗装作業を延期し、
Arduinoのプラグラミング学習を行うことにした。
スターターキットに付属していた電子部品を使い、DCモーターを制御してみる。
ピックアップ製作では、モーターにピックアップボビンを取り付け、
回転させてワイヤを巻いていくのだが、
モーターは正転・逆転切り替えが出来、回転スピードも調整できなくてはならない。
タクトスイッチ2個とPOTとトグルSWを使い、
DCモーターのON・OFF、回転方向、回転スピードを制御する単純なプログラムを作る。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sef662617a094ec9f/image/i2029511514078414/version/1629099339/image.jpg)
キットには、モーター制御ICも付属していたので活用。
2個のモーター制御が個別に行える。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sef662617a094ec9f/image/ib77c0771d521e87c/version/1629099526/image.jpg)
ON・OFFスイッチも付属のタクトスイッチ(モーメンタリ)を使用。
左側2個をArduinoのデジタル入出力の2・3番に接続。
2番がON、3番がOFF。
Arduinoのデジタル入出力には、プルアップ抵抗が内蔵されているので利用。
HIGHとLOWのロジックが逆になるが、
抵抗を用意する必要が無いし、配線もシンプルになる。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sef662617a094ec9f/image/id639ed7e5045665f/version/1629100167/image.jpg)
モーターの回転スピードを調整する10kΩPOTもキット付属の物を使用。
アナログ入力の0番に接続。
POTを回すことにより0〜1023の値をArduinoに送る。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sef662617a094ec9f/image/i5e0ae675dc532308/version/1629100496/image.jpg)
キットにはトグルSWは入っていなかったので、手持ちのSWを使用。
これでモーターの正転・逆転を切り替える。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sef662617a094ec9f/image/i50315676e16ff722/version/1629100760/image.jpg)
上の画像がプログラムの内容。
内臓のプルアップ抵抗を利用している為、入力2・3・6のLOW・HIGHが逆になっている。
アナログ入力0番で受け取った0〜1023の値を1/4の値にして、11番にPWM出力しているが、
これは、PWM出力は0〜255までの値しか出力できない為。
悪戦苦闘しながら、なんとか予定通りの動作を確認。
Arduinoプログラムの基本は、なんとなく理解できた。
電子工作やArduinoプログラミングに興味のない方には、
チンプンカンプンな内容かもしれないが、しばらくの間はご容赦を。