バルブが家の外にあるんですよね。
家の中からこの切り替えが出来たらもっと楽なのにな~
と前々から思ってたので、色々考えました。
要はバルブのツマミをモータで回してやればいいんです。
ただ、正転、逆転、限界検知などが必要で、モーターと
電源とスイッチだけじゃ無理。
で、買いましたMotor Shield。
突然なのでちょっと紹介すると、フリーソフトのハード版
とかで最近有名な「Arduino」ってワンボードのマイコンが
ありまして、簡単なプログラミングで色々と出来る便利
な代物です。
このボードを拡張する別部品をshieldって言うんですね。
MotorShieldはモーターを制御出来るshieldって事。
購入は「スイッチサイエンス」さん。色々そろってて便利で、
配送も早い。時々お世話になってます。
ここで「Arduino モーターシールド Rev3」を手配。
商品のホームページに、製造元リンクで回路図へと、
ボード仕様と使用ピンが出ています。
逆に言うとこれで資料は全て。
とりあえず基盤を眺めると、電源とモーターをつなぐ端子が
あるのが、わかります。
とりあえずArduinoと合体させます。けど、んっ?
ピンの数が合わないようで。手元にあったArduinoが
古いからのようですね。Arduino Duemilanoveってかい
てます。
ピンの名前見てみると、数が違っても問題なさそうなので、
ArduinoとMotorshieldでピンの名前が合うように合体
させます。
ちょっと部品と干渉するので、一部のピンを曲げます。
とりあえず勘でスケッチ書いて、Vin端子とGND端子に
3Vをかけて、A端子の電圧を測ると、なんとかなりそうな
のでモーターをA端子につけるとPWMを最大にすると
モーターが唸っています。ん、んっ?PWMだから唸って
るのか?何かおかしいので、A端子の電圧を測ると明
らかに3V以上出ています。おかしいやん。なぜ?
とりあえず製造元のpdf回路図を見ました。
でわかったのが、デフォルトではArduinoにかけている
5VがそのままA、B端子に使われているんですね。
回路図のLSP5がVin端子ですが上にVIN-CONNECT
ってのがありますよね。そこにDEFAULT:Closedに
なってます。MotorSheild基盤の裏側を見ると、ありました!
それらしき箇所が。
このVin Connect部分がくっついてますので、カッターで
切り離します。
で電圧を再度測るとばっちり3Vになっています。
PWMでA端子を制御すると、255付近にするとA端子
付近のLEDが片方点灯します。
逆にPWM値を下げていくとこんな感じ。
LEDで状態がわかるので便利ですね。
ちなみにモーターはタミヤの遊星ギヤーボックスを
使いました。
このギヤーボックスはよく出来ているんですけど、音が
ちょっと大きいかな。
ま、モーター制御部はうまくいってよかった。
操作部とセンサー部が必要なんですけど、ま、それは
また次回。
サンプルにスケッチ載せときます。
あくまでも、サンプルですよ。
----------------------------------------------------
//motorshieldテスト
//digitalの12ピン13ピンで回転方向制御
//digitalの3ピン11ピンでPWM制御
//テストでは端子Aのみを使用
//端子Aはmot1
#define dir1 12
#define mot1 3
void setup()
{
pinMode(dir1, OUTPUT);
}
void loop()
{
//HIGHとLOWで回転方向を変える
digitalWrite(dir1, LOW);
//PWMで回転速度制御0が最低255が最高
analogWrite(mot1, 255);
}
-------------------------------------------------------