おもしろ工作・プログラミング動画配信中!せでぃあのYouTube

Arduinoで有接点リレー制御!ダイオードを使った逆起電圧対策回路の作り方【ビジュアルプログラミングLESSON23】

Arduinoで有接点リレーシーケンス制御!ダイオードの接続がカギ【ビジュアルプログラミングLESSON23】
  • URLをコピーしました!

この記事内には、プロモーションが含まれます。

【お詫びと注意事項】
 Youtubeチャンネルにて、有識者の方にアドバイスをいただきましたので、注意事項を下記します。
 ①リレーについて
  本動画で使用しているリレーコイルは定格電流が71.4mAとArduinoの定格出力の40mAを超えています。
  問題なく動作はできましたが基板故障を避けるため、40mA以下で駆動できるSSR(ソリッドステートリレー)などをご使用願います。

 ②逆起電圧対策ダイオードについて
  逆回復時間に配慮した高速ダイオードの使用が推奨されるとのことです。

 アドバイスをいただいた方々に感謝申し上げるとともに、電気エンジニアとして精進させていただく所存です。
本記事で有接点リレーの構造や役割について参考にしていただければと思います。

こんにちは、せでぃあ(@cediablog)です。

今回のArduinoプログラミングLESSON23では、「有接点リレー制御回路の作り方が分かる、リモコンを使ったモーター制御」を紹介します。

LESSON23の工作が完成した写真。
今回のLESSON23の完成写真

家電量販店を見ても、たくさんのリモコン制御ができる扇風機が売られているのを目にするようになりました。

今回は首振りや回転速度制御までは行いませんが、扇風機をリモコンで制御する電子工作をイメージしたテーマになっています。

L293Dモータードライバを用いた、モーターの回転速度制御方法を紹介しています。

首振り動作にも対応した、扇風機の電子工作の作り方はこちらの記事を参照してください。

本記事ではELEGOOスーパースターターキットに含まれるパーツを使って、有接点リレー制御を使ってDCモーター電源をリモコンボタンでON-OFF切り替えさせる電子工作を作っていきます。

プログラミングと電子パーツの知識が習得できるプログラミング初心者も安心して取り組めるテーマとなっています。

小学生、中学生も安心してプログラミングができるように、文字列を使わなビジュアルプログラミング方法を動画付きで紹介しています。

せでぃあ

ビジュアルプログラミングを使えば小学生から抵抗なくプログラミングができますよ!

本記事では、スクラッチベースのビジュアルプログラミングツールmBlockとArduinoIDEプログラムどちらのプログラミング方法も紹介しています。

本記事ではmBlockのアップロードモード「オン」でのプログラム例を紹介しています。

無料のブロックプログラミングツールmBlockのインストール方法については、こちらの記事を参照してください。

この記事を読んでわかること
  • 有接点リレーの仕組み、ダイオードの必要性と各種機器の配線方法
  • Arduino IDEでのプログラミング方法
  • mBlockを使ったビジュアルプログラミング方法
この記事を書いた人
せでぃあ

せでぃあはこんな人物です

✅プライム企業に勤める電気・機械設計エンジニア

✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作

✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞

✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中

✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中

目次

有接点リレーとダイオードの必要性について

今回Arduinoキットに含まれる、有接点リレーとダイオードをそれぞれ1つ使用します。

今回使用する機器と型式

  • 有接点リレー:SRD-05VDC-SL-C
  • ダイオード:1N4007

これらの機器の仕組みや、有接点リレー回路の作り方について解説します。

有接点リレーの役割と仕組み

有接点リレーの動作原理が視覚的に分かる動画です。

有接点リレーとは、その名の通り「物理的な接点を持つリレー」です。

電磁開閉器と呼ばれることもある、電磁石を使って接点を動かす仕組みの電子機器です。

有接点リレーの役割は大きく分けて、以下の2つです。

有接点リレーの役割

  • 大きな電流を流す回路を開閉する。
  • 異なる電源回路を開閉する。

今回のLESSONでは、上記役割の両方とも担うことになります。

使用する有接点リレーのSPECについて

有接点リレー
今回使用する有接点リレー「SRD-05VDC-SL-C」

ダイオード「SRD-05VDC-SL-C」のSPEC

  • コイル電圧:DC5V
  • コイル電流:71.4mA
  • 接点タイプ:C接点
  • 接点定格:28VDC、7A(抵抗負荷)、3A(誘導負荷cosθ=0.4 L/R=7msec)

今回使用するリレーは、共通コモン線1つに対して、a接点とb接点が存在する「C接点タイプ」となります。

接点定格が誘導負荷を接続する場合でも、3Aまで流すことが可能です。

また、今回接続するDCモーターのMAX電流が250mAに対しても十分なSPECを持っています。

せでぃあ

Arduino UNO R3の接点定格は40mAしかないため、リレーの接点を使う必要があります。

SRD-05VDC-SL-Cの端子の役割と内部回路の説明

SRD-05VDC-SL-Cの端子の役割と内部回路については、上記のようになります。

リレー内部は、赤線表記のコイル励磁回路と、黄色線表記の接点回路の2つに分けられます。

リレーコイルOFF時にはサージ電圧(逆起電圧)が発生する

リレーコイルは誘導負荷なので、回路をON⇒OFFした際にサージ電圧(逆起電圧)が生じます。

リレーコイルには、Arduinoの出力ソケットが接続されるため逆起電圧によりArduino基板内部回路が破損してしまう恐れがあります。

逆起電圧のイメージ図

逆起電圧対策としてダイオードが必要

ダイオード表面の帯側がカソードです。

直流電源(DC)でコイルをONさせるリレーに対する逆起電圧対策として、ダイオードが使われます。

ダイオード「1N4007」のSPEC

  • ピーク電圧:1000V
  • 平均順方向電流:1A
  • 使用温度域:-55~175℃

リレーコイルの電源電圧は「5V」なので、その10倍以上のSPECがあれば良いと言われているので十分なSPECです。

また、電流値についてはリレーコイルの電流値「71.4mA」以上あれば良いのでこちらについても問題ないSPECと言えます。

ダイオードによる逆起電圧対策イメージ

ダイオードを挿入することで、逆起電流をダイオード経由でコイルに流し込みコイルの抵抗成分でジュール熱として消費させることができます。

ダイオードをコイルに対して並列に挿入しますが、接続するダイオードの向きに注意してください。

せでぃあ

ダイオード表面の帯印刷側に向かって電流が流れます。

赤外線リモコンの仕組み

赤外線リモコンの仕組みについて解析します。

赤外線リモコンは受信機とセットで使用します。
Arduinoキットに含まれるリモコン部品

リモコン操作は、信号を発信する「赤外線リモコン」と信号を受け取る「赤外線受信機」をペアで使用します。

リモコン動作の流れ

  • 赤外線リモコンのボタンを押すと、赤外線LEDから赤外線が高速で点滅します。
  • この点滅パターンを赤外線受信機が読み取って送信されたデータを解析します。
  • データ内容に応じた動作を行います。

例えば今回使用するリモコンの「0ボタン」を押すと、「16738455」というデータが受信データとして認識されます。

0ボタンを押すと必ず同じデータ「16738455」を認識できるので、マイコン側は「16738455」を受信した=「0ボタンが押された」と解釈できます。

赤外線リモコンについては、こちらの記事にて詳しく説明しています。

有接点リレーによるDCモーター制御の動作の解説

今回紹介する「リモコンを使って、モーター電源をON-OFFさせる動作」について説明します。

動作の説明

  • リモコンボタン「1」を押すと、DCモーターが回転開始する
  • リモコンボタン「3」を押すと、DCモーターの回転が停止する。

今回はリモコンの「1」と「3」ボタンのみ使用します。

動作説明とブロックプログラミング手順の解説動画
動画での解説内容
  • 有接点リレーの仕組みとダイオードの必要性について
  • 赤外線リモコン操作によるDCモーター制御動作
  • mBlockを使ったプログラミング方法

まずは動画を見て、今回のLESSONで実行させたい動作内容を確認してください。

また、mBlockを使ったブロックプログラミングや動作確認方法についても解説しています。

せでぃあ

有接点リレーの仕組みが理解できるテーマになっています。

有接点リレーによるDCモーター制御までの流れ

有接点リレーシーケンス回路を用いた、DCモーターON-OFF制御のために必要な作業を解説します。

今回は文字列を使ったプログラム形式と、文字列を使わないブロックプログラミング形式の両方について説明します。

あなたの作りたいプロブラム形式に対応した手順に応じて、対応してください。

プログラム形式に応じた開発環境

  • 文字列による命令語形式 ⇒ ArduinoIDE
  • スクラッチベースのビジュアル形式 ⇒ mBlock
せでぃあ

プログラミング初心者の方は、ビジュアルプログラミングがおすすめです!

STEP
必要なものを準備

プログラミングするために、パソコンが必要です。

電子部品等の必要な機器については、このあと説明します。

STEP
Arduinoを使うためのセットアップ(Arduino IDEプログラミング時のみ)

パソコンに統合開発ソフトウェア「ArduinoIDE」のインストールを行います。

Arduinoのセットアップ方法については、以下の記事にて詳しく説明しています。

Arduino IDEでの言語プログラミングも勉強したい方は、プログラミングの流れを理解しておいてください。

以下の記事にて、プログラミングから動作確認までの流れを詳しく説明しています。

mBlockでプログラミングする場合は、ArduinoIDEのインストールは不要です。

STEP
mBlockでプログラミングするためのセットアップ(mBlockプログラミング時のみ)

パソコンにスクラッチベースのビジュアルプログラミングツール「mBlock」のインストールを行います。

以下の記事にて詳しく説明しています。

ArduinoIDEでプログラミングする場合は、mBlockのインストールは不要です。

STEP
電気配線

電子部品とジャンパーワイヤの差し込みだけで配線が可能です。

STEP
Arduino IDEプログラミング

専用開発ソフトウェア「Arduino IDE」を使います。

私が作成したプログラムをコピペして使ってください。

Arduino IDEプログラミングの基本操作については、こちらの記事にて詳しく説明しています。

mBlockでプログラミングする場合は、ArduinoIDEプログラミングは不要です。

STEP
mBlockプログラミング

スクラッチベースのビジュアルプログラミングツールmBlockを使ってプログラムを作成します

プログラム内容については、後述するプログラミング例を参考にしてください。

ArduinoIDEでプログラミングする場合は、mBlockプログラミングは不要です。

STEP
動作確認

プログラムが完成したら動作確認を行います。

動作確認チェックリスト
  • リモコンボタン「1」を押すと、DCモーターが回転するか?
  • リモコンボタン「3」を押すと、DCモーターが停止するか?

有接点リレーシーケンス制御回路で使うもの

今回モーター部は「扇風機の電子工作記事テーマの一部」、リモコン制御部は「LESSON21の赤外線リモコン制御テーマ」の考え方を使って回路を構築しています。

有接点リレーシーケンス制御以外の要素についての理解を深めるためにも、こちらの記事から読んでいただくことをおすすめします。

有接点リレーシーケンス制御回路で使う機器説明写真
配線が完了しプログラム転送できる状態写真
準備するもの
  1. パソコン
  2. Arduino本体
  3. USBケーブル
  4. ブレッドボード
  5. 赤外線受信機
  6. 赤外線リモコン
  7. 電源モジュール
  8. スナップケーブル
  9. 9V電池
  10. DCモーター(+プロペラ)
  11. リレー
  12. ダイオード
  13. ジャンパー線(オスーメス)×7本
  14. ジャンパー線(オスーオス)×2本

今回はELEGOO社のスーパースターターキットに含まれる部品で作ることができますが、Arduino裏面のショート対策としてクリアケースも併せて準備することをおすすめします。

【おすすめ】コスパ最強のArduinoキットの中間グレードです!

パソコン

プログラムを作成するために必要です。

プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。

パソコンのOSはWindows、Macどちらでも対応可能です。

Arduino本体【キット】

Arduino本体
Arduino本体

基本的なエディション「Arduino Uno」の互換機である、ELEGOO社のUNO R3を使用しています。

Arduino本体裏面のショート対策に、別売りのクリアケースの購入をおすすめしています。

各ソケットの役割など、Arduino本体の機能について以下の記事にて詳しく説明しています。

USBケーブル【キット】

必要なUSBケーブルの説明写真
USBケーブル

パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。

ブレッドボード【キット】

ブレッドボードの機能説明図
ブレッドボードの機能説明図

たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。

説明図は30列のショート版ですが、スーパースターターキットに含まれる63列タイプでも機能は同じです。

ブレッドボードだけの購入も可能です。

赤外線受信機【キット】

赤外線受信機
赤外線受信機

赤外線リモコンの赤外線信号を受信するための機器です。

リモコン【キット】

リモコン
リモコン

赤外線リモコンです。

赤外線レシーバーとセットで使います。

電源モジュール【キット】

電源モジュール
電源モジュール

ArduinoUnoのデジタル入出力ピンから供給できる電流は40mAとなっており、それほど大きくはありません。

今回使用するDCモーターは負荷回転時に最大250mA流れるため、電流値不足となってしまいます。

この対策として、今回のような外部電源モジュール(最大出力700mA)を接続して駆動させる必要があります。

今回はリレーの接点(接点定格3A)を使って電源供給させるので、流せる電流値としては問題がありません。

ですが、Arduinoから高い電流を供給することはマイコンの損傷リスクがあるため電源モジュールを使用すると安心です。

電源モジュールについては、こちらの記事にて詳しく説明しています。

DC9V電池、スナップケーブル【キット】

9Vバッテリーとスナップケーブル
DC9V電池とスナップケーブル

9V電池とDCジャックがついたスナップケーブルです。

電源モジュールに接続します。

今回キット付属の電池を使いきってしまったので、Amazonで購入した9V電池を使用しています。

DCモーター(プロペラ付き)【キット】

DCモーターとプロペラ
DCモーターとプロペラ

DCモーターは直流電圧をかけるだけで回転させることができます。

パルス変調(PWM:Pulse Width Modulation)という出力方式を利用して、モーターの回転速度を制御することができます。

有接点リレー【キット】

有接点リレー

コイル電圧がDC5Vの有接点リレーです。

高い接点定格が必要であったり、別電源回路を開閉するために使用します。

ダイオード【キット】

ダイオード

ダイオードは、一方向に電流を流して逆の方向には電流を流さない電子機器です。

今回は、リレーの逆起電圧によるArduino内部回路破損を避けるための対策に使用しています。

ジャンパー線(オスーメス)【キット】

ジャンパー線(オス-メス)
ジャンパー線(オス-メス)

オス-メスジャンパー線を7本使用します。

I2Cシリアルインターフェースボード及び赤外線受信機とArduino本体を接続させるために使用します。

ジャンパー線(オスーオス)【キット】

キットに同梱されているジャンパー線(オスーオス)の説明
ジャンパー線

ジャンパー線を2本使用します。

Arduino本体とブレッドボードの接続や、ブレッドボードの共通電源ライン(GNDまたは5V)からブレッドボード内の配線系統穴に差し込んで接続するのに使います。

スターターキットに含まれる機器に関しては、以下の記事にて詳しく紹介しています。

有接点リレーシーケンス制御回路の配線方法

ここからは、各機器間の配線方法について解説します。

有接点リレー制御回路の配線が完了した状態
配線完了時の状態写真
有接点リレー制御回路の配線説明図
配線説明図(fritzingを用いて作成)

上図が配線説明図となりますので、これと同じ配線をすれば完成します。

機器が故障するおそれがあるので、接続するプラスマイナス極性には十分注意して配線してください。

リレー周りの回路は下記の電気図を参考にしてください。

リレー周りの回路図

リレーコイルを励磁するための電源は、Arduinoから供給しています。

DCモーターは最大負荷電流が250mAとArduino接点定格の40mAよりはるかに大きいため、最大出力電流が700mAの電源モジュールからの電源ラインを使ってArduino本体の回路と直接接続しない別電源回路にてモーター駆動させます。

せでぃあ

リレーの端子は短く細いので配線コネクタが抜けやすいため、写真のようにリレーの端子を上向きにして差し込んでください。

赤外線受信機のつなぎ先

  • G:GNDに接続
  • R:5Vに接続
  • Y:2番ピンに接続

機器故障させないためにも、USBケーブルを抜いた「通電OFF」状態にて配線を行ってください

プログラミングのやり方

本記事では、以下に示す「Arduino IDEプログラミング」と「mBlockプログラミング」の2通りのプログラミング方法について解説しています。

いずれか1つのプログラミング方法を用いることで、本LESSONの動作を行うことが可能です。

ArduinoIDE:文字列による命令語形式
mBlock:スクラッチベースのビジュアル形式

文字列を使わないmBlockの方が、直感的で分かりやすく小学生におすすめのプログラミング方法になります。

mBlockを使ってプログラミングをする方は、mBlockの説明まで読み飛ばしてください。

せでぃあ

プログラミング初心者の方は、ビジュアルプログラミングがおすすめです!

リモコンボタン0~9の受信データ

リモコンからの入力信号データをLCDディスプレイに表示させる説明写真
LESSON21でリモコンボタン0~9の受信データを確認しています。

リモコンボタンに対する受信データは、受信させたデータをモニタリングしなければ分かりません。

今回使用するリモコンの0~9ボタンに対する、受信データの割り当ては以下の通りです。

リモコンボタンに対する受信データの割り当て
  • 0ボタン:16738455
  • 1ボタン:16724175
  • 2ボタン:16718055
  • 3ボタン:16743045
  • 4ボタン:16716015
  • 5ボタン:16726215
  • 6ボタン:16734885
  • 7ボタン:16728765
  • 8ボタン:16730805
  • 9ボタン:16732845

今回のLESSON23では、1ボタンと3ボタンの2種類のみ使用します。

リモコンボタンの役割

  • 1ボタン(16724175):モーター回転ON
  • 3ボタン(16743045):モーター回転OFF

IRremoteライブラリのインストール

赤外線(IR)リモコン受信機を使ってデータを受信するためには、専用のライブラリをインストールする必要があります。

mBlockでプログラミングをする場合は、本ライブラリインストール作業は不要です。

STEP
ArduinoIDEを開いて、ライブラリを管理をクリックする。
Arduino IDEを開き、スケッチ⇒ライブラリをインクルード⇒ライブラリを管理をクリックする。

Arduino IDEを開き、スケッチ⇒ライブラリをインクルード⇒ライブラリを管理をクリックする。

STEP
IRremoteライブラリを検索する
検索窓に「IRremote」と入力して、IRremoteライブラリを検索します。

検索窓に「IRremote」と入力して、IRremoteライブラリを検索します。

ライブラリが検索できたら、プルダウンからバージョン「2.8.0」を選択します。

ver2.8.1以降を使うと、赤外線リモコンからの受信データがすべて「0」と認識されてしまうため、必ず「2.8.0」を選択してください。

STEP
IRremoteライブラリをインストールする
インストールボタンをクリックして、IRremoteライブラリをインストールします。

インストールボタンをクリックして、IRremoteライブラリをインストールします。

STEP
インストールが完了したことを確認する
ライブラリのインストールが完了した旨の表示がされたら、IRremoteライブラリのインストールは完了です。

ライブラリのインストールが完了した旨の表示がされたら、IRremoteライブラリのインストールは完了です。

Arduino IDEプログラミング

Arduino IDEとは統合開発ソフトウェアで、C言語のような文字列を用いたプログラミング方法です。

プログラミングするにあたり、ある程度の命令語を知っておく必要があります。

Arduino IDEのインストール方法については、以下の記事で詳しく説明しています。

日本語版のArduino公式リファレンスが記載されているので、関数を調べるときに重宝します!(私も所有しています)

プログラミング方法

Arduino IDEでの有接点リレー制御プログラミング画面
Arduino IDEでのプログラミング画面

Arduino IDEを使って、文字列プログラミングを行います。

Arduino IDEを使ったプログラミング~動作確認方法については、以下の記事で詳細説明しています。

Arduino IDEプログラム

/* 作品名:LESSON23 */
/* 作成者:せでぃあ https://cediablog.com */
/* 有接点リレー制御 */

// ライブラリのインクルード
#include <IRremote.h>  //赤外線受信用ライブラリ

// 変数の宣言
int RECEIVE_SOCKET = 2;  //IR受信信号入力ソケット番号
int RELAY_SOCKET = 5;    //リレーコイルON出力ソケット番号

// IR受信モジュールの初期設定
IRrecv irrecv(RECEIVE_SOCKET);  // 受信オブジェクトの作成
decode_results results;         // 受信データの格納先

void setup() {
  //プログラム起動時1回だけ処理される回路

  //入出力ピンの割り当て
  pinMode(RELAY_SOCKET, OUTPUT);  //5番ソケットは出力として使用

  //リレーコイルをOFF(初期化処理)
  digitalWrite(RELAY_SOCKET, LOW);

  //IR受信モジュール
  irrecv.enableIRIn();  //IR受信モジュールを有効化
}

void loop() {
  //プログラム起動後ループ処理される回路

  if (irrecv.decode(&results)) {  //IR受信モジュールからデータを受信したとき

    //リモコン「1」ボタン信号を受信したとき
    if (results.value == 16724175) {
      digitalWrite(RELAY_SOCKET, HIGH);  //リレーコイルをON
    }

    //リモコン「3」ボタン信号を受信したとき
    else if (results.value == 16743045) {
      digitalWrite(RELAY_SOCKET, LOW);  //リレーコイルをOFF
    }

    irrecv.resume();  //IR受信情報をリセット
  }

  delay(100);  //0.1秒ウェイト
}

上記が有接点リレー制御を使ったDCモーター回転ON-OFF制御プログラムになります。

Arduino IDEのプログラム画面にコピーアンドペーストすることで、動作確認まで進めることができます。

各プログラム列の右側にプログラム内容をコメント記入してありますので参考にしてください。

せでぃあ

プログラムのボリュームは大きくありませんが、コピペを使うとプログラム作成時間が短縮できますよ。

命令語の解説

今回のプログラムで使用した命令文について、解説します。

変数のデータ型指定

変数のデータ型を指定するものです。

今回はピンソケット番号を代入するので整数を扱う「int型」を指定します。

スクロールできます
データ型説明扱える範囲
int2バイトの整数を代入可能。-32768~32767
long4バイトの整数を代入可能-2,147,483,648~2,147,483,647
float4バイトの小数を代入可能。3.4028235×1038~-3.4028235×1038
char1バイトの値を代入可能。文字列の代入に利用されます。-128~127
boolean0または1のみ代入可能。フラグのON-OFFなどに利用されます。0,1
データ型の説明

pinMode(入出力番号,INPUTまたはOUTPUT)

指定したデジタル入出力ソケット番号の機能を指示します。

入力として使用する場合は「INPUT」、出力の場合は「OUTPUT」を指定します。

digitalWrite(入出力ソケット番号,HIGHまたはLOW)

指定したデジタル入出力ソケット番号の電圧をON、またはOFFします。

ONさせたいときは「HIGH」、OFFさせたいときは「LOW」を指定します。

if else文

条件式が成立しているか否かで、どちらの命令文を実行するか振り分けます。

if( 条件 ){
 条件成立時に実行する文 ;
} else {
 条件不成立時に実行する文 ;
}

delay(時間)

()内で指定した時間(単位はmsec)だけ、プログラム実行を待たせます。

IRremoteライブラリの説明

赤外線リモコンからの受信データを受信するために、「IRremoteライブラリ」を使用します。

このライブラリを使うことで、赤外線受信機を使って赤外線リモコンからのデータを受信することができます。

ライブラリのバージョンは2.8.0をインストールしてください。

IRremoteライブラリの読み出し

プログラム冒頭の宣言部にてIRremoteライブラリを読み出します。

#include <IRremote.h>

赤外線データ受信オブジェクトの作成

赤外線データを受信するためのオブジェクトを作成します。

赤外線受信機の信号線と接続するArduinoの入力ピン番号を指定します。

IRrecv 受信オブジェクト名(入力ピン番号)

受信データの格納先を作成する

赤外線受信データの格納先変数を作成します。

decode_results 変数名

赤外線受信モジュールを有効にする

setup関数にて、赤外線受信モジュールを有効化します。

受信オブジェクト名.enableIRIn()

赤外線データを受信したかどうかを確認するフラグ

赤外線データを受信すると「HIGH」になるフラグです。

データを受信したときに演算させたいときに、if文の条件として使います。

受信オブジェクト名.decode(&results)

赤外線受信データの参照

赤外線受信機にて受信したデータは、受信データ格納変数.valueを使って参照できます。

受信データ格納変数名.value

赤外線受信情報をリセット

赤外線受信データをリセットし、次の赤外線データを受信できるようにします。

受信オブジェクト名.resume()

プログラミング初心者の方に、おすすめなArduinoの参考書を紹介しています!

mBlockプログラミング

スクラッチベースのビジュアルプログラミングツールmBlockプログラミングの説明
mBlockを使ったプログラミング画面

ここからは、mBlockを使ったプログラムの作り方を解説します。

mBlockを使ったプログラムの作り方
  1. デバイスにArduino Uno R3を追加する
  2. 接続モードを「アップロードモードON」にする
  3. mBlockプログラムを作成する
  4. プログラムをArduino本体に転送する

これらの基本操作方法については、こちらの記事を参照してください。

プログラミング、動作確認方法については、本記事の説明動画でも紹介しています

せでぃあ

動画を参考にプログラミングしてみてください。

IRremoteブロックの追加方法

mBlockではArduino用の専用ブロックが標準でいくつか準備されています。

しかしながら、赤外線データを受信するためのブロックは標準では準備されていないため、拡張ブロックを追加する必要があります。

追加が必要なIRremoteブロックと機能説明
追加が必要なIRremoteブロックと機能説明

今回は赤外線データ送信ブロック以外の4種類のIRremoteブロックを使います。

STEP
拡張ボタンをクリック
mBlockを開いて、拡張ボタンをクリックします。

mBlockを開いて、拡張ボタンをクリックします。

STEP
検索窓に「irremote」と入力して検索
検索窓に「irremote」と入力します。

検索窓に「irremote」と入力して、拡張ブロックを検索します。

STEP
プルアップブロックを追加する
INPUT_PULLUPと書かれた拡張ブロックを追加します。

INPUT_PULLUPと書かれた拡張ブロックを追加します。

STEP
IRremoteブロックが追加される
IRremoteブロックが追加されます。

IRremoteブロックが追加され、プログラムに使用可能となります。

mBlockを使ったプログラム内容

今回は「アップロードモード オン」でのプログラム作成例を紹介しています。

プログラム開始条件が「Arduino Unoが起動したとき」になっている点に注意してください。

以下のプログラムが動作プログラムと解説になります。

mBlockによる有接点リレー制御を使ったDCモーター制御ブロックプログラム
mBlockによる赤外線リモコンを使った有接点リレー制御ビジュアルプログラム

プログラムのボリュームが少ないので、作りやすいと思います。

赤外線リモコン受信データの数値は手入力なので、入力間違いしないように注意してください。

mBlockのArduino専用ブロックについては、こちらの記事にて詳しく説明しています。

動作確認方法

有接点リレー制御回路の配線説明図
配線状態説明図
動作確認チェックリスト
  • リモコンボタン「1」を押すと、DCモーターが回転するか?
  • リモコンボタン「3」を押すと、DCモーターが停止するか?

上記項目について確認していきましょう。

リモコンボタン「1」を押すとDCモーターが回転し、「3」を押すと回転停止するか

赤外線リモコンは受信機とセットで使用します。

赤外線リモコンのLEDを受信機の受光部の方向に向けて、リモコンのボタンを押してください。

今回のLESSON23では、1ボタンと3ボタンの2種類のみ使用します。

リモコンボタンの役割

  • 1ボタン(16724175):モーター回転ON
  • 3ボタン(16743045):モーター回転OFF

まず1ボタンを押して、モーター(プロペラ)が回転開始するか確認してください。

モーターが回転しはじめたら、今度は3ボタンを押して回転停止させてください。

有接点リレーの接点がONに切り替わるときに「カチッ」と音が聞こえますので、モーターの回転停止動作が出来ない場合は、ボタンを押したときにリレーから音がするかを確認すると要因が絞り込めます。

リレーから音が聞こえない場合は、プログラムまたは配線間違いの可能性があります。

また、リレーから音が聞こえてきてもモーターが回転しない場合は、配線間違いの可能性が高いので配線状態を確認してください。

せでぃあ

赤外線受信機はリモコンからのデータを受け取ると赤色LEDが点滅します。

有接点リレー制御は便利でかんたん(まとめ)

この記事の内容をまとめると
  • 有接点リレーは電磁石(コイル)を使って接点を開閉する。
  • 有接点リレーは接点に大きな電流を流す場合や、別電源回路の開閉に利用される。
  • リレーコイルON⇒OFF時の逆起電圧対策として、ダイオードの並列接続が必要。

リレーの役割や使い方について、なんとなく理解していただけましたでしょうか?

ハード制御設計回路の世界で、有接点リレーシーケンス制御は必要不可欠な電子機器です。

Arduinoの出力ソケットを使って機器の電源を制御する場合は、流れる電流値に注意するようにしてください。

小学生のお子様には断然、ビジュアルプログラミングがおすすめです!

せでぃあ

mBlockはブロックのドラッグアンドドロップで簡単にプログラミングができます!

小学生のプログラミング学習におすすめな、mBlockが使えるプログラミングロボットを紹介しています。

最後まで読んでいただき、ありがとうございました。

L293Dモータードライバを用いた、モーターの回転速度制御方法を紹介しています。

首振り動作にも対応した、扇風機の電子工作の作り方はこちらの記事を参照してください。

子供の成長を育む!小学生のお子様にぴったりなプログラミング教室が見つかるように厳選しました!

Arduinoスクラッチプログラミングのおすすめ参考書について詳しく説明しています。

Arduinoプログラミング(スクラッチも)を使った電子工作を紹介しています。

応援ありがとうございます(^^)/

Arduinoで有接点リレーシーケンス制御!ダイオードの接続がカギ【ビジュアルプログラミングLESSON23】

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次