部品の選択や試行錯誤に時間がかかったので、備忘録を兼ねて内容を共有します。
使ったもの
- Arduino Leonardo
- プッシュソレノイド
ソレコン応募のために、タカハのソレノイドを使用しました。
CB07300170とCB08300120で動作確認しました。 - NchパワーMOSFET K2232
- スイッチングACアダプター12V1A
- ブレッドボード用DCジャックDIP化キット
- スーパー3端子レギュレータ 5V500mA R-78E5.0-0.5
- ブレッドボード
- ジャンパワイヤ
- 整流用ショットキーダイオード(100V1A)
- 10kΩ抵抗
手元にあった1/4Wを使いましたが、小さい1/6Wでも良いです。
電子工作の小ネタ
ソレノイドの小ネタ
ソレノイドのワイヤーをハンダで固くしておくと、ブレッドボードに刺しやすくなるので便利です。ソレノイドには極性が無いので、どちらの端子を+にしても-にしても動作します。
三端子レギュレータの小ネタ
スーパー三端子レギュレータに端子の役割を書たビニールテープ貼っておくと、組み立て時に迷わなくて便利です。回路の説明
ArduinoのD4がHIGHの時にソレノイドが動作します。
逆起電力(ソレノイドへの電力供給停止後、ソレノイドの棒が元に戻るときに発生する電力)でArduinoなどが壊れるのを防ぐために、ダイオードを組み込んで逆起電力を開放しています。
プログラム書き込み中などでD4が中途半端な電圧になったり、D4への線を離したときも誤動作しないように、gateを10KΩ経由でGNDに接続しています。
上側にソレノイド向けの12Vを、下側に3端子レギュレータを通してArduino向けの5Vを供給しています。
ArduinoのVINに12Vを供給しても動作はしますが、Arduinoに載っているレギュレータからノイズが聞こえるので、この回路では外付けの3端子レギュレータを使いました。
プログラムの説明
D4につないだMOSFETを操作します。
solenoid_test
#define SOLENOID_PIN 4 void setup() { pinMode(SOLENOID_PIN, OUTPUT); } void loop() { // solenoid off digitalWrite(SOLENOID_PIN, LOW); delay(1000); // solenoid on digitalWrite(SOLENOID_PIN, HIGH); delay(1000); }
動作確認
一秒おきに、ソレノイドが動いていたら成功です。この情報が役に立てば嬉しいです。
応用例
自分がソレノイドを使って作ったものを紹介します。スロークッカー
第3回ソレコンに応募した作品です。関連記事はこちらです。
Arduino LEONARDOでLCD(AE-AQM1602A)を使う
Arduinoで水温計DS18B20を使う
おいしいお肉を作ってくれましたが、今はヨーグルト発酵器が活躍しています。
ソレ・エア・リモコン
第2回ソレコンに応募した作品です。これは6V電源とraspberry piで制御していますが、12V電源とArduinoのものと回路はほとんど同じです。
空調の影響が少ない席に移ったので、運用は終わりました。
関連記事はこちらです。
tocos twe-liteの信号をubuntuで確認する
ソースコートはこちらです。
room_server
参考
MOS FETによるスイッチングの基礎マンガでソレノイド
コイルのパルス駆動と逆起電力
3.2.4.1. フォトカプラの利用方法
変更履歴
2016.04.22逆起電力による回路へのダメージを防ぐため、ソレノイドと並列にダイオードを設置しました。
2016.06.29
- ソレノイドに極性がないことを記述
モーターのように極性があると誤認識していました。 - MOSFETとフォトカプラの説明を修正
絶縁していないにも関わらず、絶縁と思えるような記述を削除しました。 - 利用するフォトカプラをTLP621からTLP222に変更し、回路も変更
これにより、HIGHでソレノイドが動作し、LOWでソレノイドの動作が停止するようになりました。 - 利用する三端子レギュレータを変更
これにより、電源部分の部品点数が減ったのと、スイッチによる降圧のため電力効率が上がりました。
2016.07.05
応用例を追加しました。
2016.07.07
5Vでのゲート制御ならフォトカプラが無くても問題ないことが分かったため、フォトカプラを削除して回路を単純にしました。
参考: 下記データシート3p中段、Id-VgsとVds-Vgsのグラフ
http://akizukidenshi.com/download/2sk2232.pdf
2017.07.21
不要になった「フォトカプラ」に関する記述が残っていたので、削除しました。
2018.05.24
逆起電力を開放するためにダイオードを使っているという説明を追加しました。
2020.10.11
twitterでgateのプルダウン抵抗が1kΩだと小さいというコメントがあり、確かにそうだと思ったので10kΩに変更しました。
コメント失礼します。
返信削除もしよろしければ教えてください。
動画で使用している、LEDの点灯検知の部品は何を使用していますか?
コメントありがとうございます。
削除秋月電子で売られているこちらの光センサを利用しました。
電磁調理器: 大面積Si PINフォトダイオード S6967
エアコン: フォトICダイオードS9648
どちらも「Arduino 光センサ」で検索して出てくるCdSセルの光センサと同じように利用できます。
光センサ(CDSセル)で遊ぼう
電磁調理器に少し高めのこちらのセンサを利用した理由は「四角くて横からピンが出ていて、テープで貼り付けやすかったから」だったような気がします。
電磁調理器を安くて丸いセンサで検知できたかは、覚えていません。
(試してなかったかもしれません。)
どちらのセンサを使う場合も、検知したいLED以外の光がセンサに当たると期待通りの値を取れない(昼と夜で値が変わる)ので、黒いビニールテープなどで覆うことをお勧めします。
返信ありがとうございます!
削除なるほど。黒いのは自作のカバーなんですね。
やはり、外光の影響を考慮する必要がありそうですね。
自分もそこを心配していました。
チャレンジしてみます!
ブログ、いつも参考にさせてもらっています!
今後も楽しみsにしています!頑張ってください!
チャレンジがうまくいくと良いですね。
削除ありがとうございます(^-^)
そうコメントしてもらえると嬉しいです。
気ままに続けていこうと思いますので、良かったら引き続きご覧ください。