以前に手動式のディスペンサーを買ったのですが、人が手でやるのでどうしてもばらつきが出ます。
じゃあ自動化しようと考えて空圧を使えばいけるのではと考えて自作してみました。
※空圧式なのでコンプレッサーなどで圧縮空気を作れる環境でないと使えません
スポンサーリンク
世の中には素晴らしいエア圧送式のディスペンサが既に存在しています。
これっぽいものを自作するわけです。
調整するのは圧力と時間みたいです。
タイマ動作と連続動作を切り替えるのは便利そうですね。
操作はフットスイッチっぽいです。
圧力はレギュレータを入れたらいいですし、時間はタイマーで制御しましょうか。
主な空圧部品
部品は安く揃えたいので毎度おなじみAliexpressである程度揃えました。
空圧機器は国内メーカー品だと小型だったりピッタリの仕様があったりしますが高いですしね...
エアレギュレータ
レギュレータはAR2000というやつです。
ワンタッチ継手込みで約600円、安い!
今回の使用上、できれば逆流機能付きのほうがいいですがコスト面を考えて目を瞑りました。
方向制御弁(ソレノイドバルブ)
ソレノイドバルブは3ポート弁である必要があります。
2ポートでしたらずっと圧力がかかってしまいますからね。
このあたりは空気圧回路の項でもう少し詳しく説明します。
制御しやすいように操作コイル電圧がDC12Vのタイプを選定しました。
今回使ったのはAirtacというメーカーの3V110-06という型番です。
購入時によく見てなかったのですが、常時開(NO)と常時閉(NC)のタイプがあるみたいですね。
今回のディスペンサのような用途だとNCが適しています。
届いたらNCだったのでホッとしました。
シリンジ接続部
シリンジと接続する部分は国内では見つかりませんでした。
Aliexpressで探すとあら不思議、簡単に見つかってしまうんですよね...
10ccの方はよくあるクリームはんだのシリンジに繋がります。
フラックスのシリンジはちょっと厳しいかもしれません。
30ccは熱硬化性の接着剤などに繋げられます。
チューブが柔らかめでしたが、そんなに圧力をかけない予定のでこのまま使います。
継手部分は切って後述の別のものを取り付けます。
継手類
継手類はミスミで買いました。
エアカプラと内部配管用のワンタッチ継手ですね。
ワンタッチ継手はピスコ推しです。
チューブは6mmで配管しました。
見えている部分だと次のような継手を使っています。
シリンジ接続側のチューブには元々付いているプラスチックの継ぎ手を切って下記のやつ取り付けています。
その他にもソレノイドバルブ(今回は1/8)の継手だったり、直角に曲げるためにワンタッチ継手のエルボとかを使っています。
あと圧が抜けるときの消音用にサイレンサを使っています。
空気圧回路
記号で回路図を描くとこんな感じになります。
普通はレギュレータを前において、ソレノイドバルブを後に置きます。
ただ今回はソレノイドバルブの後にレギュレータを置いています。
その理由は圧力を小さいところまで調整したいからです。
バブルがパイロット式なので前段で圧力を小さくしすぎるとバルブが動きません。
使っているバルブの仕様上、最低でも0.15MPaの圧力がないとダメです。
ですので、バルブはある程度高い圧力で受けてその後で圧力を落とします。
こうすることでシリンジに0.01MPaのような小さい圧力でもかけることができます。
ただしこの構成だと、大気開放の時に空気が逆流するので、逆流機能付きのレギュレータにするのが一般的です。
もしくは逆止弁を付けて大気開放のときだけレギュレータを通らないようにするかです。
とはいっても大抵のエアレギュレータはリリーフ機構がついていると思いますので、これを利用すれば別にそういう機能や逆止弁がなくても問題なく動くでしょう。
リリーフ機構で流れる空気の量が少ないと大気開放に時間がかかる場合がありますので、そのときは逆止弁の設置を考えましょう。
主な電気部品
電気部品はそんなに多くありません。
フットスイッチ
最低限必要なものです。
Aliexpressでも売っていますが、値段相応といいますか安っぽいです。
スポンサーリンク
電線が短いので取り替える必要がありますし、中のリミットスイッチも電極が錆びてるんですよね...
プラスチック製で脆そうですが、基本室内で裸足で踏むので許容範囲ですかね。
電子部品類
ソレノイドバルブを制御するための部品です。
抵抗やトランジスタなどなど...
このあたりは制御回路を見たほうが分かりやすいのでここでは省略します。
制御回路
普通のタイマ回路にしても良かったのですが、タイマ動作と連続動作の切り替えが面倒そうだったのでマイコンを載せることにしました。
また、時間調整は色々つけると面倒なのでボリュームですることにしました。
別に難しいところはなく、電源回路と接点入力回路、FETの駆動回路があるだけです。
フォトカプラを使っているのはできるだけノイズを受けないようにするための気休めです。
外部接点や誘導負荷(今回はソレノイドバルブ)はノイズが発生して誤作動の原因になりますので注意しましょう。
これくらいならユニバーサル基板でいけると思ったので、すぐに作ってみました。
適当に部品を配置してしまったので配線量が多めになってしまいましたが、動くので問題ないでしょう。
制御プログラム
制御はフットスイッチが踏まれたら何秒間かソレノイドバルブをONにするという簡単なものです。
#include <Bounce2.h> // https://github.com/thomasfredericks/Bounce2 #include <SimpleTimer.h> // https://github.com/schinken/SimpleTimer #define FOOT_SW_IN 0 // フットスイッチ #define SOL_OUT 1 // ソレノイドバルブ #define VOLUME_IN A1 // ボリューム(アナログ入力) #define FILTER_COEFF 0.8 // フィルタ定数(1に近づくほどデータを平滑大) Bounce debouncer = Bounce(); SimpleTimer volume_data_filtering; float val_lpf_out = 0.0; float old_lpf_out = 0.0; void setup() { debouncer.attach(FOOT_SW_IN, INPUT_PULLUP); debouncer.interval(10); pinMode(SOL_OUT, OUTPUT); volume_data_filtering.setInterval(100, get_vol_data); val_lpf_out = analogRead(VOLUME_IN); old_lpf_out = val_lpf_out; } void loop() { debouncer.update(); volume_data_filtering.run(); // フットスイッチを押したとき if (debouncer.fell()) { digitalWrite(SOL_OUT, HIGH); if (val_lpf_out <= 1000) { // 1023までの値を取って10倍するので最大圧送時間は10秒程度 delay(val_lpf_out * 10); digitalWrite(SOL_OUT, LOW); } } // フットスイッチから離れたとき(連続動作の場合の解除処理) if (debouncer.rose()) { digitalWrite(SOL_OUT, LOW); } } void get_vol_data() { int val = analogRead(VOLUME_IN); val_lpf_out = FILTER_COEFF * old_lpf_out + (1.0 - FILTER_COEFF) * val; old_lpf_out = val_lpf_out; }
ボリュームを目一杯回した時に連続動作になるようになっています。
0~1023で入ってくるデータを単純に10倍にした分(ミリ秒)だけONするという感じです。
絞りすぎると速すぎてソレノイドバルブをONできなくなってしまうんですけどね。
完成・使用感
これらをケースに収めて完成です。
なるべくコンパクトになるようにしたので中は結構ギリギリです。
空圧回路に自信がないので見せられません...
表側はエア用のカプラと圧力・時間調整用のノブが出ています。
裏側は電源用のDCジャックとスイッチ用のコネクタだけのシンプルな構成です。
挿し間違えもなさそうなので表示はなしです。
むしろシンプルでいいのではないでしょうか。
シリンジを付けてフットスイッチを押せば動きます。
フラックスのシリンジは入りませんでした。
試しに基板にクリームはんだを塗布してみました。
想像以上にうまくいきました!
シリンジと基板の角度や押さえる具合でも出る量が少し変わるので、自動になっても少々コツが必要です。
簡易的なスタンドを探してみましょうか。
とは言っても手動よりは確実にいいです。
制御も複雑ではないので、圧縮空気があれば作ってみてはいかがでしょうか。
スポンサーリンク
Leave a Comment