自動リセットのON/OFFスイッチ
Arduinoはスケッチ転送を開始しようとすると自動的にリセットがかかり、ブートローダーが起動してスケッチが書き込まれるようになっていますが、場合によってはこれが弊害になります。ということでここにスイッチを付けてみました。
どんな時に弊害か…具体的には「自動水やり機」です。これは「トレイの水が無くなってから○時間経過後にモーター駆動」というように、数時間、数日に渡って連続稼働させる事を想定しています。さらに遠隔地からその状況が確認できるよう、USBで常時PC(ubuntuマシン)と接続しています。
Arduino内USB-Serial変換のDTRがLになる事でリセットがかかりますが、ここで、ubuntuのドライバによるものなのか、Arduinoにアクセスした瞬間にリセットがかかってしまう事がありました。
例えばsttyにてArduinoデバイスを設定するとリセットがかかります。また、catにてアクセスすると、DuemilanoveではリセットはかかりませんでしたがUNOではリセットがかかります。この差はドライバの差によるものなのか、USB-シリアル変換によるものなのか、不明です。
いずれにせよリセットされてほしくない。
という事を想定し、ArduinoはDTR信号からAVRのRESET端子の配線を容易にパターンカットできるようになっていますが、さらに幸いにもUNOになってからこのパターンが部品の少ない場所になりました。だったらここにスイッチもマウントできるのではないだろうか…長くなりましたがこれがこの本文の趣旨。
というわけで、ちょっと強引だけど、基板に直接マウントするタイプのスライドスイッチの端子を曲げ、このパターン部(RESET-EN)にハンダ付けしてみました。
結果は上々。固定は端子のハンダ付けのみですが、結構しっかりと固定できました。
編集→転送→動作確認→デバッグを繰り返す時にはSWをON、稼働時にはOFFに切り替えることでとても便利に使えるようになりました。
ま、それだけですが。