Arduino 入門
Lesson 27
【リレー編】
「Arduino」を使ったマイコンプログラミングを子供と一緒に学習するブログ。
少しずつ、子供と一緒に楽しみながら気長にアップしてく予定です。
本記事はLesson 27 【リレー編】です。
リレー(relay)とは、単純に言えばスイッチのことです。
※リレーは継電器とも呼ばれます。
ただのスイッチではなく電気的に制御するスイッチです。
ただの機械的なスイッチはLesson 05【プッシュボタンスイッチ編】にて解説しています。
電気的に制御するために何をしているかというと・・・
電磁石の原理を利用しています。
中学生の頃に「右ねじの法則」という名前で学習しましたよね。
本記事では、Lesson 26のDCモーターにリレーを追加することでDCモータのON/OFFを制御します。
Lesson 26ではドライバICでDCモータを直接制御することでON/OFFしています。
Lesson 27ではドライバICでリレーを制御することでDCモーターをON/OFFします。
Lesson 26を学習しているとスムーズにLesson27に取り組むことができます。
Arduino入門編の解説にて使用しているArduinoは互換品です。
互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
正規品(Arduino UNO R3)の本体単品がほしい方はこちらとなります。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
はじめに
冒頭で少し解説しましたが、リレーは電磁石でON/OFFを制御するスイッチです。
使われ方としては、主に2つあります。
- 小さな信号で大きな電流を制御する。
- 遠く離れた場所まで信号を伝える。
といった使われ方です。
1は制御する回路と大電流を扱う駆動回路を完全に分離したい場合などにを想定。
2は距離によって減衰する信号を増幅して伝えるといったことを想定しています。
2の信号を伝えていくというのがリレーと言われている言葉です。
※リレーは継電器とも呼ばれます。
継電器(けいでんき、英語: relay、リレー)は、動作スイッチ・物理量・電力機器等の状態に応じ、制御または電源用の電力の出力をする電力機器である。
Lesson 27 目標
本Lessonの目標は以下です。
2.リレー(継電器)の制御を理解する。
3.リレー(継電器)を使用してDCモーターをON/OFFする。
今回も遊ぶことを最大の目標に楽しみましょう!
準備
ではLessonの準備に取り掛かりましょう。
Lesson 26 【DCモーター編】を実践していればリレーを追加するだけです。
頑張って組み上げていきましょう。
必要なもの
- USB接続用のPC(IDE統合環境がインストールされたPC)
→管理人が勝手に比較したBTOメーカーを紹介しています。 - UNO R3(以下UNO)、おすすめUNO互換品(ELEGOO)
- PCとUNOを接続するUSBケーブル
- ブレッドボード安価(大)、ブレッドボード安価(中)
※おすすめブレッドボード(大)、おすすめブレッドボード(中) - M-M Jumper wire(UNOと部品をつなぐための配線)
- M-F Jumper wire(UNOと部品をつなぐための配線)
- M-F M-M F-F セット Jumper wire(UNOと部品をつなぐための配線)
- リレー(SRD-05VDC-SL-C)
- マブチ DCモーター
- 電源モジュール
- 電源モジュールに供給する電源
Amazonベーシック 乾電池 9V形 アルカリ 8個セット - モータードライバIC(L293D)
Jumper wire、抵抗は今後も頻繁に利用します。
Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。
短めが使いやすい場合も。
抵抗も単品で揃えるよりはセットをおすすめします。
抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!
という方は、「電子工作基本部品セット」が使い勝手が良い。
使用部品説明
新たに登場した部品について説明していきます。
本Lessonで新しく登場する部品は以下となります。
以下の部品に関しては、Lesson 26にて解説していますのでご確認ください。
リレー 実物写真
下の写真が、リレーです。
端子が5つある5極リレーとなります。
■表面
■裏面
ちなみに、ELEGOO UNO キットには合わせて梱包されています。
Amazonで売られているものを紹介しておきます。
こちらは、本Lessonで使用しているものと同じものです。
Arduinoで使用する場合、5V制御のものがおすすめです。
リレー原理
原理図は、本Lessonで使用する5極リレーとなります。
また、本Lessonで使用する「SRD-05VDC-SL-C」をもとに解説します。
図に示すように、通常はバネによりb接点(ブレーク接点)に繋がっています。
端子eとfに電流を流すことで、コイルを巻いた鉄心に磁力が発生し磁石となることでa接点側に繋がることになります。
そうすることで、c接点とa接点が接続されc接点とa接点に接続された電子部品が動作します。
原理図で示したリレーはトランスファー接点と呼ばれます。
リレーには、接点により3種類の分類があります。
- メーク接点
- ブレイク接点
- トランスファー接点
※本Lessonで使用するリレーはトランスファー接点
リレーについて詳しく知りたい方は、下記のサイトにわかりやすい解説があります。
リレー 仕様
本Lessonで使用してるリレーの型番は「SRD-05VDC-SL-C」。
ELEGOO UNO キットに梱包されているリレーとなります。
データシートは以下となります。
データシートを確認するときは、型番と合わせて確認が必要です。
コイル特性
標準電圧[V] | 標準電流[mA] | コイル抵抗[Ω] |
---|---|---|
5 | 71.4 | 70 |
※5V / 70Ω = 71.4mAとなります。
接点部仕様
接点に通電できる定格負荷の仕様となります。
抵抗負荷 | 誘導負荷 cosΦ = 0.4 L/R = 7ms |
|
---|---|---|
定格負荷 | DC 28V 7A AC 125V 10A AC 240V 7A |
DC 28V 3A AC 120V 3A |
接点電圧の最大値 | AC 250V DC 110V |
36 |
コイル特性から、リレーをON/OFFさせるためには5Vで71.4mA程度必要ということがわかります。
使用するドライバIC(L293D)は4.5V~36Vの電圧範囲において、最大±600mAの出力電流で負荷を駆動できるため問題ありません。
また、使用する「DCモーター」は5V程度で約60mA程度の消費電流です。
こちらも、接点部仕様に対して特に問題とならない負荷であることがわかります。
また、Lesson 26ではch1とch2でDCモーターを制御しました。
Lesson 27ではch1、ch2を使ってリレーを制御します。
そうすることで、リレーによってDCモーターをON/OFFさせます。
そのため、Lesson 26のコードを少し改変することで対応できます。
実践 回路作成とコード作成
最初に回路図を確認してください。
次に、回路図に合わせて部品を接続します。
最後にコードを書いて、リレーでDCモーターをON/OFFさせてみましょう。
Arduinoのピン配置を確認したい方は番外編02を参照してください。
回路図
リレーのeをドライバーIC(L293D)のch1、出力ピン(3番)。
リレーのfをドライバーIC(L293D)のch2、出力ピン(6番)に接続します。
Arduinoはデジタルピンの7,5,3番ピンを使用します。
- 7:L293Dの1番ピン(Enableピン)
- 5:L293Dの2番ピン(CH1バッファ入力)
- 3:L293Dの7番ピン(CH2バッファ入力)
回路図がこちら。
こちらがブレッドボード図。
回路図は「fritzing」を利用しています。
「fritzing」の使い方は下記を参照してください。
接続
下図に示すように、用意した部品を使用して接続しましょう。
部品は電源モジュールとドライバーIC(L293D)、DCモーター、リレー(relay)なります。
使用するポートは、デジタルピンの「3,5,7」です。
穴に挿入しづらいときは、ラジオペンチなどを使用してください。
コードの書き込み
接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。
コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。
コマンド説明
特に新しくでてきたコマンドはありません。
本Lessonのスケッチ(コード)はLesson 26のスケッチ(コード)を少し変更しだだけです。
サンプルコード
サンプルコードを下記に示します。
シリアルモニタからテンキーの数字を押すことによってリレーを制御しています。
Lesson 26から不要部分を削除して、少し改変したのみです。
ドライバIC(L293D)の出力をリレーに接続し制御しています。
//Lesson 27 リレー編 //https://omoroya.com/ // 電子部品は電源モジュールとドライバIC(L293D)を使用 // 変数の設定 const int ENABLE = 7; const int CH1 = 5; const int CH2 = 3; void setup() { //Pinの方向を定義 pinMode(ENABLE,OUTPUT); // 7番ピンをOUTPUT指定 pinMode(CH1,OUTPUT); // 5番ピンをOUTPUT指定 pinMode(CH2,OUTPUT); // 3版ピンをOUTPUT指定 Serial.begin(9600); //シリアルモニタに説明を表示 Serial.println("1:SW ON"); Serial.println("2:SW OFF"); Serial.println("0:Forced STOP"); // 初期化 DCモータが突然動きださないように digitalWrite(ENABLE,LOW); // disable delay(500); } void loop() { if (Serial.available() > 0 ) // 受信したデータが存在した場合以下を実行 { char val = Serial.read(); // char文字として受信データの読み込み // 1の場合 SW ON CH1:High CH2:Low if (val == '1') { Serial.println("1:SW ON"); digitalWrite(ENABLE,HIGH); // enable on digitalWrite(CH1,HIGH); digitalWrite(CH2,LOW); } // 2の場合 SW OFF CH1:Low CH2:Low else if (val == '2') { Serial.println("2:SW OFF"); digitalWrite(ENABLE,HIGH); // enable on digitalWrite(CH1,LOW); digitalWrite(CH2,LOW); } // 0の場合 強制停止 else if (val == '0') { Serial.println("0:Forced STOP"); digitalWrite(ENABLE,LOW); // disable } } }
動作確認
では、さっそく動作を確認していきます。
シリアルモニタを開いてテンキーの数字を押してみてください。
1:SW ON
2:SW OFF
0:強制停止
となるはずです。
2のSW OFFと0の強制停止の違いは、ドライバの出力をLOWにすることで止めるのか、Enable信号をLowにして止めるかだけの違いです。
リレー(relay)が動くとカチッと音がするはずです。
その音とともにDCモーターが回りだせば成功です。
動いているところを、リレーの音とともに掲載したいのですが。
音声も載せようとすると、やはりyoutubeに動画をアップでしょうか?
いつかは挑戦したいですね・・・。
まとめ
今回は以下の内容について理解してもらいました。
2.リレー(継電器)の制御を理解する。
3.リレー(継電器)を使用してDCモーターをON/OFFする。
4.楽しんで遊ぶ。
いかがだったでしょうか。
リレーが動く、「カチッ」という音聞くことができたでしょうか?
本Lessonでは、DCモーターを使いましたがLEDなどを使用してもかまいません。
色んな電子部品をリレーでON/OFF制御してみてくだださい。
Lesson 27 【リレー編】 はここまで。
リレーの制御がわかれば色んな事ができそうですね。
疑問点、質問などありましたら気軽にコメントください。
次回、Arduino 入門 Lesson 28 【ステッピングモーター編】です。
これで、Arduinoで制御できる代表的なモーターを網羅することになります。
最後に
疑問点、質問などありましたら気軽にコメントください。
この電子部品の解説をしてほしい!などなどなんでもOKです。
リンク切れ、間違いなどあればコメントいただけると助かります。
Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。
Arduino入門編、Arduino入門編2で使用しているUNOはAmazonにて購入可能です。
Arduino入門編では互換品を使用。
Arduinoはオープンソース。
複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
学習用、遊び用、お試し用には安価な互換品がおすすめです。
ELEGOO UNO キット レベルアップ チュートリアル付 uno mega2560 r3 nanoと互換 Arduino用
上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
Amazonでお得に買う方法
Amazonでお得に購入するならAmazon Mastercard、Amazonギフト券がおすすめです。
時期により異なりますが、様々なキャンペーンを実施しています。
\Amazonギフト券/
Amazonギフトカード キャンペーン
\Amazon Mastercard お申込み/
Amazon Mastercard 申し込み
いずれの場合もプライム会員である方がお得!!
\Amazon Prime 30日間の無料会員を試す/
無料会員登録
コメント
楽しく読ませていただきました。
1点質問ですが、今回使用したリレーでは正転逆転や回転数の制御はできるのでしょうか。
CH1がLow・CH2がHighの場合、メーク接点に引っ張るのとは逆方向の力が働き、モーターは回らない気がしています。
また、リレーの構造上、ON/OFFの制御のみではないかと考えています。
質問させていただいた者です。
上記質問の補足なのですが、
ELEGOOチュートリアルのスケッチでは正転逆転を入れ替える内容になっており、チュートリアルがミスなのではないかと思い質問させていただいた次第です。
コメントありがとうございます。
本Lessonで使用したリレーは正転逆転の動作とは関係ありません。
そのため、「リレーで正転逆転や回転数の制御はできるか?」というのに対しては、
リレーはただのスイッチですという回答になります。
モーターの正転逆転や回転数の制御は、あくまでもモーターにかける電圧しだいです。
また、Lesson27の回路は正転逆転できる回路構成になっていません。
1週間ほど前から始めた超初心者です。
バカな質問をするかもしれませんがよろしくお願いします。
モーターのオンオフをコントロールするだけなら、L293Dのバッファを1つだけ使うのではダメなのでしょうか?
つまり、 In2(6番ピン)とOut2(7番ピン)を使わず、リレーのOut2とつながっていた線を電源のマイナスにつなげるのはどうでしょうか?
そうすればArdiunoのD3を使わずにすむので、コードの数も減らせるのではないかと思いました。
よろしくお願いします。
コメントありがとうございます。
オン、オフだけであればバッファ1つで問題ありません。
モータを正回転、逆回転させるために2つ使用しています。
Lesson 26もあわせて参照ください。
https://omoroya.com/arduino-lesson26/