目次
1.振動モーター
2.モーター駆動用回路
3.5Vバッテリーの用意
4.ArduinoUNOプログラム
1.振動モーター
振動モーターを用意する。おもちゃ用のやつがAmazonで売っている。
久しぶりに見たら在庫切れになっていた。
とにかく5V駆動ででっかいのが良いと思う。似たようなのがいろいろ売られている。
実際に買って、測定すると300mAくらい電流を流すようだ。
二つ使うとUSB(2.0)の電流では足らない。別途電源を用意して駆動させる必要がある。
2.モーター駆動用回路
以下のように回路を組んでみた。
修正(2017/12/03)’回路図にR5、R6追加’
Arduinoの3pinと11pinを使用する。
このピンはPWMという疑似アナログ出力が出せるようになっている。PWMの詳細はググれば出てくる。
GNDも共通とする。モーターを動かすと大量のノイズが発生するため、インダクタを噛ませてArduinoと共通にする。
残念ながらオシロスコープを持っていないため、効果のほどは不明。無いよりはだいぶましなような気がするが・・・。
Arduinoからの信号をコンパレーターで整形してから、トランジスタに送る。
配線が長いとPWMの波形がなまるのではないかと気にしている。実際の効果はオシロスコープがないので不明。
NJM2903の出力はオープンコレクタのため、抵抗で吊ってやる必要がある。5kΩの抵抗を介し電源とつなげている。
また、NJM2903の出力は300mAもの電流は引き込めない。NchのパワーMOSFETで電流を流す。
なお、モータには並列に保護用のダイオードを入れてやること。モーターのサイズがそこそこ大きいため、モーターオフ時にかなりの逆電流(逆起電力の方が正確かな?)が発生するようだ。
これがArduino側に流れてしまうとArduinoが壊れる可能性がある。というか以前にひとつ壊した。

3.5Vバッテリーの用意
駆動用の5Vバッテリーを用意したい。できれば充電できるものが良いのだが、最近は携帯用のモバイルバッテリーが進化してきたため、出力電流を監視するようになっている。
このため、出力電流が小さいと自動的にオフになる機能が入っている。これだと回路の電源に使えない(振動モーターを使ってないと自動的に切れる・・・)。
そこで一案だが100均で見つけた以下の携帯用の電池式充電器を使ってみる。


とがんばってみたのだが最近ダイソーで売っているのが監視機能がなく回路用に使えることを知った。
4.ArduinoUNOプログラム
振動モーターを動かします。
以下のようにスケッチに書き込んでみました。
void setup() {
pinMode(3,OUTPUT);
pinMode(11,OUTPUT);
analogWrite(3,63);
analogWrite(11,63);
}
void loop() {
}
プログラムについて、
・pinMode()
3pinと11pinを出力モードにします。
・analogWrite()
3pinと11pinからPWM出力します。
最大255(8bit)に対し、63ですので最大出力の1/4の力でモーターが回転します。
以上になります。