もんく [英語ダメでもマレーシアで働いてみたよ]

インドネシアや台湾なんかにもいたのです。(since Oct. 2004)

液面維持システム その8 ノイズ対策(割込み禁止で重要な事、追記)

2017-03-05 23:29:36 | ABCのAはArduinoのA
家でやると上手く行くのに
実機では上手く動かない。

その原因が内蔵プルアップにあると思って
外部プルアップに変更していた。
それで行けるんだろうな、と思ったのが2月25日。
液面維持システム その7で書いた。

が、その後、外部プルアップでやっても同じ事が起きるとわかった。
しかも、基板上のリセットスイッチ配線の端子にテスターやドライバーが触れるだけで
リセットがかかってしまう。
リセットは割り込みだからドライバーなどで触るといつでもリセット動作が起きる。
さらに、ソレノイドかリレーの開閉のタイミングにもリセットがかかる。

家と実機での違いは、リレーの先に電源に繋がったソレノイドバルブがあるか無いか。
こりゃもうわからん、と言うことで、
おしえてgooで質問させてもらったところ、ある方から回答を頂けた。

かいつまんで言うと、
ハイインピーダンスの入力に外部の誘導ノイズが乗っているのだろうと言う事。
そして対策はプルアップ抵抗と並列にコンデンサを付ける。



やってみた。
確かに効果あり。
端子にドライバーで触ってもリセットはしない。
(家に配線ごと全部持ち帰ってテスト。)

が、実機ではソレノイドバルブ開閉でリセットがかかる現象だけが残った。
そうだ、ソレノイドバルブの電源はAC220V。
これを直流の低い電圧の物に替えよう。

早速DC12Vのを買った。
コイルの接点両端をまたぐようにダイオードを取り付けた。



そしてリレーユニットを本体基板から外して別体化し
中国人からいただいたお茶の缶に入れた。

リレーユニットの入力と電源にも用心してダイオード設置。



少しはマシ。
でもまだソレノイドの動作があるところだけのリセットは残った。
しかも、このソレノイドバルブではダイヤフラムポンプを駆動するために
通せるエアの量がたりなかった。

と言うわけで、DC12Vソレノイドは却下。
DCアダプタと合わせて約RM80もしたのに....


写真はDC12Vソレノイドの時の構成。

それでAC220Vソレノイド戻して他の全ての配線もちょっといい加減だがシールドした。

さらに、スケッチもリレーのON-OFFの前後で割込リセットがかからないように変更。

と、それで結果は?
と言いたいところなのだが、ちゃんと動作試験ができていないので
残念ながらここに書く事ができない。

結果はまた次回報告。
スケッチは明日にでもこの下↓にコピーします。


-------------------スケッチ--------------------

スケッチを載せておこうと思ったけれど
その前に変更してしまったのでやめます。

1つだけ、大切な事がわかったので書きます。

"リレーのON-OFF前後で割込みがかからないように..."
noInterrupts()とinterrupts()でON-OFFの部分を囲んだ。
その中にdelay(1000)と1秒の待ち時間を入れた。

ところが、1秒カウントしてくれない。
さっさと過ぎてしまう。
確か割込みで飛んだ先のサブルーチンの中はそれができなかったはず。
でも、それ以外のところで時間カウントができないとは聞いていない。

が、よくよく調べると(リファレンスには書いてないが)
割込み禁止の中でも時間カウントができなくなるそうだ。
いろいろあるものだ。

---------------------------------------------------


ところで、次のプロジェクトは.......
フィルムの上に塗ったインクの量を透過光の量で測ってみようと言うもの。
CdS(LDR)を使ってフィルム裏から当てた透過光を数値化するつもり。

アイデアとしては、CdSを複数直列にして面内の平均値を(実際には合計値)検出。
そこから読んだ数値を16x2のLCDに表示する。
数字を読むだけだとわかりにくいので可変抵抗器を回して標準値を作り、
その標準値と現在値の違いをLCD上かLED、または両方同時にを使って
アナログ的にわかりやすく表示する。

問題点は、光源が耐久的にどれだけ信頼できるか。
光源は多分LEDだと思うが、その電源をどうするか。
CdSの耐久性はどう確保できるか。
のような事だと今は考えている。

また、できればロガーとして長時間記録できればなあとも思う。
Arduinoに慣れている人にとっては簡単な事の組み合わせなのかなと思うけれど...
『その他』 ジャンルのランキング
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加
« 狂犬病の予防注射1回目 | トップ | 辞表撤回か? »
最近の画像もっと見る

コメントを投稿

ABCのAはArduinoのA」カテゴリの最新記事

トラックバック

この記事のトラックバック  Ping-URL