2016年1月10日日曜日

Arduinoで12Vを制御して、ソレノイドを動かす方法


部品の選択や試行錯誤に時間がかかったので、備忘録を兼ねて内容を共有します。

使ったもの


電子工作の小ネタ

ソレノイドの小ネタ

ソレノイドのワイヤーをハンダで固くしておくと、ブレッドボードに刺しやすくなるので便利です。


ソレノイドには極性が無いので、どちらの端子を+にしても-にしても動作します。

三端子レギュレータの小ネタ

スーパー三端子レギュレータに端子の役割を書たビニールテープ貼っておくと、組み立て時に迷わなくて便利です。


回路の説明




ArduinoのD4がHIGHの時にソレノイドが動作します。
D4がHIGHからLOWになった時の反応速度を高めるために、1KΩ経由でgateに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);
}

動作確認

一秒おきに、ソレノイドが動いていたら成功です。


この情報が役に立てば嬉しいです。

参考

MOS FETによるスイッチングの基礎
マンガでソレノイド
コイルのパルス駆動と逆起電力
3.2.4.1. フォトカプラの利用方法

応用例

自分がソレノイドを使って作ったものを紹介します。

スロークッカー

第3回ソレコンに応募した作品です。
関連記事はこちらです。
Arduino LEONARDOでLCD(AE-AQM1602A)を使う
Arduinoで水温計DS18B20を使う

おいしいお肉を作ってくれましたが、今はヨーグルト発酵器が活躍しています。

ソレ・エア・リモコン

第2回ソレコンに応募した作品です。
これは6V電源とraspberry piで制御していますが、12V電源とArduinoのものと回路はほとんど同じです。


空調の影響が少ない席に移ったので、運用は終わりました。

関連記事はこちらです。
tocos twe-liteの信号をubuntuで確認する

ソースコートはこちらです。
room_server

変更履歴

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
不要になったt「フォトカプラ」に関する記述が残っていたので、削除しました。

4 件のコメント :

  1. コメント失礼します。
    もしよろしければ教えてください。
    動画で使用している、LEDの点灯検知の部品は何を使用していますか?

    返信削除
    返信
    1. コメントありがとうございます。

      秋月電子で売られているこちらの光センサを利用しました。
      電磁調理器: 大面積Si PINフォトダイオード S6967
      エアコン: フォトICダイオードS9648

      どちらも「Arduino 光センサ」で検索して出てくるCdSセルの光センサと同じように利用できます。
      光センサ(CDSセル)で遊ぼう

      電磁調理器に少し高めのこちらのセンサを利用した理由は「四角くて横からピンが出ていて、テープで貼り付けやすかったから」だったような気がします。
      電磁調理器を安くて丸いセンサで検知できたかは、覚えていません。
      (試してなかったかもしれません。)

      どちらのセンサを使う場合も、検知したいLED以外の光がセンサに当たると期待通りの値を取れない(昼と夜で値が変わる)ので、黒いビニールテープなどで覆うことをお勧めします。

      削除
    2. 返信ありがとうございます!
      なるほど。黒いのは自作のカバーなんですね。
      やはり、外光の影響を考慮する必要がありそうですね。
      自分もそこを心配していました。
      チャレンジしてみます!

      ブログ、いつも参考にさせてもらっています!
      今後も楽しみsにしています!頑張ってください!

      削除
    3. チャレンジがうまくいくと良いですね。

      ありがとうございます(^-^)
      そうコメントしてもらえると嬉しいです。
      気ままに続けていこうと思いますので、良かったら引き続きご覧ください。

      削除