Raspberry Pi用リレー制御基板の利用
Posted by: otsuka
Raspberry Piでリレー制御を行ってみます。
Raspberry Piで使用できるリレー制御回路基板には様々な種類のものがありますが、
今回は Raspberry Pi の 40 pi ヘッダーに差す HAT 形式のリレー制御拡張基板
ADRSRU2
を使用します。
ADRSRU2はリレーが2回路付いたモデルで、4回路のADRSRU4と8回路のADRSRU8も存在します。
リレーユニットは NINGBO SONGLE RELAY CO.,LTD の SRD-05VDC-SL-C、
AC 250V/10A, DC30V/10A までの電圧/電流に対応。
github に詳細な情報ページが用意されています。
https://github.com/bit-trade-one/ADRSRU-RaspberryPi-Relay-Unit
使用例のサンプルプログラムも用意されています。
https://github.com/bit-trade-one/ADRSRU-RaspberryPi-Relay-Unit/tree/master/sample
この公式の sample プログラムは RPi.GPIO を使って全ポートが使用可能か順に on/off しています。
2回路版の使用 GPIO ポートは 4 と 17、
4回路版は 4, 17, 27, 22、
8回路版は 4, 17, 27, 22, 18, 23, 24, 25
を使います。
基板上に LED があるのでリレーに機器を繋いでいなくても on/off の状態が分かるようになっています。
特定の端子に接続した機器一台だけをon/offするなら、RPi.GPIO を使って以下のようなコードで制御できます。
なお、BC-11ah では GPIO 2 と 3 を使いますので ADRSRU シリーズとは同時に使用することができます。


特定の端子に接続した機器一台だけをon/offするなら、RPi.GPIO を使って以下のようなコードで制御できます。
#!/usr/bin/env python3 # - coding: utf-8 - import RPi.GPIO as GPIO import time GPIO.setwarnings(True) # False にしていない場合、前回起動時の設定が残っていると warning が出る GPIO.setmode(GPIO.BCM) # pin の割り当てを Raspi の BOARD に合わせたものにするか # Broadcom の chip に合わせたものにする GPIO.setup(4, GPIO.OUT) # in にするか out にするか # setup の最後の option に initial=GPIO.HIGH を加えて # まず high にしておくこともできる。 port = 4 # 1番目の端子 = GPIO 4 を制御 for i in range(3): # 3回繰り返し GPIO.output(port, True) # 1 / GPIO.HIGH / True = on time.sleep(2) GPIO.output(port, False) # 0 / GPIO.LOW / False = off time.sleep(2) GPIO.cleanup() # 後始末の cleanup をすると 0 になる。
