ども!まとんです。
秋月で450円の格安ソレノイドを、Arduino Microでお手軽に動かしてみました。
回路図(スイッチングMOSFETとサージ対策ダイオード)とスケッチも紹介します。
背景
先日、SORACOMの「あのボタン」を入手してから、電子工作熱が再燃しました。
そこで、「いつか使おう」と思ってタンスの肥しになっていたソレノイドを引っ張ってきて、ソレノイドの”Lチカ”まで実装しました。
ソレノイドとは?
コイルの中に、可動部の磁石が入っているもの。
電流を流すと電磁力が発生して、中の磁石か上がったり下がったりします。
それだけのシンプルなパーツです。
Arduinoを使えば電圧や電流は簡単に制御できますが、現実世界の「動き」に変換するのは、意外と大変です。
ソレノイドを使えば、「電圧を動きに変換」が簡単にできます。
必要なもの
・Arduino Micro・・・Arduinoなら何でもよいです。
・ソレノイド(ZHO-0420S-05A4.5)・・・とにかく安い!初心者にオススメ。パワーは小さめ。
・NチャネルMOSFET(2SK4017)・・・ゲート電圧5Vで1A流せるMOSFETなら何でも。平成の現代っ子なら、バイポーラトランジスタよりもMOSFETを使っていけ。カンタンなので。
・整流ダイオード(1N4006)・・・てきとうに余っていたやつ。ダイオードなら何でも。
・ブレッドボード・・・必需品!
・オス&オスのジャンパワイヤ2本・・・ソレノイドのコネクタがメス2列なので、ブレッドボードに刺すために必要。
回路図
今回のソレノイドはプッシュ型なので、電圧が加わる(5V)ときにプッシュします。
Arduino デジタルI/Oの5V/0Vで、ソレノイドをプッシュ/プルさせる回路を作りました。
ソレノイドは、5Vがかかったとき、内部抵抗4.5Ωなので、1.1Aが流れます。
1.1Aが流れるとプッシュ/プルするわけですが、ArduinoのデジタルI/Oピンは1.1Aもの大電流を流すことはできません(最大40mAほど)。
そこで、Arduinoの代わりに、MOSFETに1.1Aを流してもらいます。
スイッチングについて
NチャネルMOSFETは、左の端子(ゲート)にON電圧(5V)がかかると、上の端子(ドレイン)から下の端子(ソース)に向かってドレイン電流が流れる(スイッチONする)パーツです。
ゲートにArduinoのI/Oピンを接続することで、ArduinoがON(5V)のとき、MOSFETがスイッチONになって、大電流が流れて、ソレノイドをプッシュできるようになります。
(ただし、電源をArduino5Vピンから取っているので、最大450mA程度しか流せません)
プルダウンについて
ArduinoがON(5V)のときは、ゲートがハッキリと5Vに規定されますが、ArduinoがOFF(0V)のとき、ゲート電圧がハッキリと定まりません(フローティング)。
これを避けるために、10kΩ(プルダウン抵抗)を入れます。
ArduinoがOFFのとき、ゲートに溜まった電荷がグラウンドに流れていき、0Vに固定されます。
これをプルダウンと言います。
以上で、ソレノイドのプッシュ/プルを制御できるようになりましたが、もう一つ気にする必要があるのがサージ。
サージ(逆起電力)について
ソレノイドはコイルなので、スイッチを切っても、しばらく電流を流し続けようとします。(高校物理でやりますね)
しばらく電流を流すために、逆方向に高い電圧(サージ)が発生します。
今回、5VはArduinoの5V電圧からとっているので、サージでArduinoが破壊されてしまう懸念があります。
Arduinoの電源をPCのUSBケーブルから取っている場合、PC側にも悪影響があるかもしれないので、これは避けたい。
そこで、逆流電流を防ぐために、整流ダイオードを忘れずに入れましょう。
パーツの向きについて
今回、向きに気を付ける必要があるパーツはこの二つです。
自分で調べないと信じられない!という人は、データシートで確認しましょう。
ソレノイドは極性が無いので、どっちのピンに刺してもOKです。
完成系
ブレッドボードに刺すとこんな感じになりますね。
部品点数は少ないです。
ArduinoデジタルI/Oは2ピンにしました。
Arduinoスケッチ
「337拍子」を叩くスケッチです。
int TR = 2;
int note = 200; //8分音符のミリ秒数
int claptime = 50; //「カチ」のミリ秒数
int rest = note - claptime;void setup() {
pinMode(TR,OUTPUT);
delay(rest);
}void clap() { //「カチ」と鳴らす関数
digitalWrite(TR,HIGH);
delay(claptime);
digitalWrite(TR,LOW);
}
void loop() {
clap();
delay(rest);
clap();
delay(rest);
clap();
delay(rest);
delay(note);
clap();
delay(rest);
clap();
delay(rest);
clap();
delay(rest);
delay(note);
clap();
delay(rest);
clap();
delay(rest);
clap();
delay(rest);
clap();
delay(rest);
clap();
delay(rest);
clap();
delay(rest);
clap();
delay(rest);delay(note);
}
デモ
Twitterに動画を挙げました。
ソレノイドで337拍子してみた。ソレノイドかわいい pic.twitter.com/it7ZoO4F4f
— メタラーまとん@はてなブログ (@Highso_ciety) 2019年2月24日
いかがでしたか?
初めてソレノイドを使いましたが、簡単でしたね!
興味のある人は、是非真似してみてください。秋月に行けばパーツは全部揃いますよ!
あとは、先日購入したSORACOMのボタンを使って、AWSから制御できるようにして、面白いオモチャに仕上げるつもりです。
今年はメーカーズフェアに出展するぞ!!
以上、メタラーまとんでした。
ではでは。
秋月に行けない人は Amazonでドウゾ
全く同じ型番のものは無いですが、似たようなものはこれら。
Newone 3V-12V DCソレノイド電磁石プッシュプル型 3V-12V DC 300mA-770mA キャビネットロック
- 出版社/メーカー: Newone
- メディア:
- この商品を含むブログを見る
ソラコムボタンで遊んでみた記事まとめ
1. 【JAWS DAYS 2019参加レポ】「あのボタン」SORACOMの薄い本を買ってみた!
2. ソレノイド(ZHO-0420S-05A4.5)をArduinoとMOSFETで動かしてみた!
3. AWS IoTをWSL(Windows Subsystem for Linux)のUbuntuで動かしてみた!
4. ソラコムのボタンでUbuntuとサーバーレス通信してみた!(AWS IoT 1-click / Lambda / AWS IoT / Windows Subsystem for Linux: WSL)
5. ソラコムのボタンとESP32を繋いでソレノイドを演奏してみた!(AWS IoT 1-click / Lambda / AWS IoT / ESP32)