メタラーまとんがハイソにやらかすようです

東大理系修士卒JTBCエンジニアのハイソサイエティ(上流階級)な日常

ソレノイド(ZHO-0420S-05A4.5)をArduinoとMOSFETで動かしてみた!

ども!まとんです。

秋月で450円の格安ソレノイドを、Arduino Microでお手軽に動かしてみました。

回路図(スイッチングMOSFETとサージ対策ダイオード)とスケッチも紹介します。

背景

先日、SORACOMの「あのボタン」を入手してから、電子工作熱が再燃しました。

highso.hatenablog.com

そこで、「いつか使おう」と思ってタンスの肥しになっていたソレノイドを引っ張ってきて、ソレノイドの”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で、ソレノイドをプッシュ/プルさせる回路を作りました。

 

f:id:highso:20190224214731p:plain

回路図

ソレノイドは、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側にも悪影響があるかもしれないので、これは避けたい。

そこで、逆流電流を防ぐために、整流ダイオードを忘れずに入れましょう。

パーツの向きについて

f:id:highso:20190224212816p:plain

極性があるパーツ

今回、向きに気を付ける必要があるパーツはこの二つです。
自分で調べないと信じられない!という人は、データシートで確認しましょう。

ソレノイドは極性が無いので、どっちのピンに刺してもOKです。

完成系

f:id:highso:20190224215137j:image

ブレッドボードに刺すとこんな感じになりますね。

部品点数は少ないです。

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に動画を挙げました。

いかがでしたか?

初めてソレノイドを使いましたが、簡単でしたね!

興味のある人は、是非真似してみてください。秋月に行けばパーツは全部揃いますよ!

 

あとは、先日購入したSORACOMのボタンを使って、AWSから制御できるようにして、面白いオモチャに仕上げるつもりです。

今年はメーカーズフェアに出展するぞ!!

 

以上、メタラーまとんでした。

ではでは。

秋月に行けない人は Amazonでドウゾ

全く同じ型番のものは無いですが、似たようなものはこれら。

Arduinoをはじめようキット

Arduinoをはじめようキット

 

ソラコムボタンで遊んでみた記事まとめ

1. 【JAWS DAYS 2019参加レポ】「あのボタン」SORACOMの薄い本を買ってみた!

2. ソレノイド(ZHO-0420S-05A4.5)をArduinoMOSFETで動かしてみた!

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)