Raspberry Pi用のリレーを試してみたかったので、次の製品をAmazonで購入しました。
完全なマニュアルの情報を提供する(wiringPi、WebioPi、shell、python、 bcm2835と他のチュートリアルを含む)。
ですが、どこにもマニュアルが見当たりません。製品の箱には紙類が入っていませんし、ネットで検索してもドキュメントは見当たりません。海外のレビュー等を見ても、マニュアルが無いとみんな言っています。
たぶんここが公式のマニュアルの掲載ページで、「ここに無かったらメールで聞いてね」と書いてあるので聞けば良いのでしょうが、家電製品を買ったら説明書を読む前にまず電源を入れちゃう私としては、気づいたときにはラズパイにつないで電源をONにしているわけです。
基板のシルクを見ればだいたい仕様はわかります。想像した仕様とあっているかを確かめます。今回使用したのはRaspberry Pi 3 Model Bです。
テスターを導通していたらブザーが鳴るモードにして、リレーに繋ぎます。
そして次のようなコマンドを実行して、GPIOの出力状態を変えてブザーが鳴るかどうかを確かめます。
001 002 003 004 | pi@raspberrypi:~ $ sudo echo 19 > /sys/class/gpio/export pi@raspberrypi:~ $ sudo echo out > /sys/class/gpio/gpio19/direction pi@raspberrypi:~ $ sudo echo 1 > /sys/class/gpio/gpio19/value pi@raspberrypi:~ $ sudo echo 0 > /sys/class/gpio/gpio19/value |
だいたい仕様がわかったので、認識が合っているか確かめる目的が半分、遊びが半分の回路を組んでみます。こんな感じです。
次のコマンドでPythonでGPIOの制御を行うライブラリをインストールします。
001 | pi@raspberrypi:~ $ sudo pip install RPi.GPIO |
次のような感じでプログラムを作ってみました。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 | #!/usr/bin/python # coding: utf-8 import RPi.GPIO as GPIO import time CH1 = 19 CH2 = 26 CH3 = 20 CH4 = 21 COUNT = 5 SLEEP = 0.3 GPIO.setmode(GPIO.BCM) GPIO.setup(CH1, GPIO.OUT, initial = GPIO.LOW) GPIO.setup(CH2, GPIO.OUT, initial = GPIO.LOW) GPIO.setup(CH3, GPIO.OUT, initial = GPIO.LOW) GPIO.setup(CH4, GPIO.OUT, initial = GPIO.LOW) try : time.sleep( 5 ) for i in range ( 0 , COUNT): GPIO.output(CH1, GPIO.HIGH) time.sleep(SLEEP) GPIO.output(CH1, GPIO.LOW) time.sleep(SLEEP) for i in range ( 0 , COUNT): GPIO.output(CH2, GPIO.HIGH) time.sleep(SLEEP) GPIO.output(CH2, GPIO.LOW) time.sleep(SLEEP) for i in range ( 0 , COUNT): GPIO.output(CH3, GPIO.HIGH) time.sleep(SLEEP) GPIO.output(CH3, GPIO.LOW) time.sleep(SLEEP) for i in range ( 0 , COUNT): GPIO.output(CH4, GPIO.HIGH) time.sleep(SLEEP) GPIO.output(CH4, GPIO.LOW) time.sleep(SLEEP) for i in range ( 0 , COUNT): GPIO.output(CH1, GPIO.HIGH) GPIO.output(CH2, GPIO.HIGH) GPIO.output(CH3, GPIO.HIGH) GPIO.output(CH4, GPIO.HIGH) time.sleep(SLEEP) GPIO.output(CH1, GPIO.LOW) GPIO.output(CH2, GPIO.LOW) GPIO.output(CH3, GPIO.LOW) GPIO.output(CH4, GPIO.LOW) time.sleep(SLEEP) time.sleep( 5 ) finally : GPIO.cleanup() |
実行権限を付けて実行します。
001 002 | pi@raspberrypi:~ $ chmod +x relay.py pi@raspberrypi:~ $ . /relay .py |
動いている様子はこんな感じです。
リレーなのでカチカチ言います。
今回はリレーの動作確認のためにこの回路とプログラムを作りました。LEDを点灯させる電源もラズパイから取っており、リレーを使う必要性はありません(GPIOの出力でLEDを点灯できるため)。
このリレーはもっと大きな電力が必要なものを制御したり、別系統の回路や交流電源のON/OFF等をラズパイで行いたい場合に活躍します。
Amazonに書いてあった内容を信じるならば、定格は250V AC/5A、30V DC/5Aらしいので、白物家電やヒーターなどのON/OFFにも使えそうです。ただ、この製品を使う場合、リレーの定格は現物の品番から自分で調べた方が良いと思います。Amazonの文章を鵜呑みにするのは怖いですし、ロット違い等でリレーが違う場合もあるかもしれません(そもそも本物と信じて良いのか…)。
2020/05/14 追記
コメントでご指摘頂いたのですが、リレー本体に定格が印刷されていました。定格はAC125V 20A、DC14V 20Aが正解のようです。Amazonの記載が間違っていますね。
AC100Vをかける場合は細心の注意を払ってください。私は怖がりなのでAC100Vには繋ぎませんし、大きな電流が流れる用途にも使いません。
20A 14VDC
20A 125VAC
とリレーに表記されている以上
DC14V 20A
AC125V 20A
だと思います。
本当ですね。見落としていました。
ご指摘ありがとうございます。