LoginSignup
6
1

More than 5 years have passed since last update.

03: Raspberry Piでリレーを制御する - 移植編

Last updated at Posted at 2018-04-11

はじめに

こちらは
Arduino と Raspberry Pi の違いのまとめの3つ目の個別記事で、Raspberry Pi で relay を制御する。

目的

Raspberry Pi3 で Relay の制御を行う。

課題

Arduinoで動作していたRelayを持ってきてGPIOを出力にして接続すると、Relayのカチッという動作音はするのだが音がArduinoのときと比べて小さい。

問題点

Relayの出力をテスターで調べるとカチッと音は鳴るが、Relayとしての動作をしてくれていない。

原因

なんかおかしいと思い、調べたところ Raspberry Pi3 の GPIO出力の電圧は3.3Vだそうで、5Vリレーの直接駆動はできないということが分かった。

下記に詳しい。
AN INTRODUCTION TO GPIO AND PHYSICAL COMPUTING ON THE RASPBERRY PI

解決策

解決策としては、少なくとも三つ考えられる。
1. 5V動作のリレーから3V動作のリレーに交換する
2. Transistorを追加して、Switchとして用い、リレーへの電源供給を5Vとなるようにする
3. Raspberry Pi対応の Relay moduleを利用する

  1. が簡単だが、手元に3V動作のリレーはなく、新規に買うと3V動作のリレーの2回路用は500円近くするので、#2を選択した。Transistor によるリレードライブの詳細説明はこちらを参考とした。

電子回路におけるリレー使用上のご注意

ちなみに市販のリレーモジュールは、見た感じでは#2の実装になっている様子である。

リレードライブの回路図

指で書くのは厳しい。。

[回路図]
E9F83867-7B65-441E-BE5B-66A8CD2454C0.jpg

写真 not yet.

市販のRelay module

動作の状況が分かるようにLEDがついており、Relayがoffのときには、LEDが点灯している。つまり、LEDが消えたときには、RelayがOnになっている。もちろんRelayの出力側の配線を逆にすれば、LEDの点灯と動作を合わせることもできる。

リレーモジュール

価格は大きく変動するようなのでebay.comとかいろいろ探すとよいかもしれない。

05_RELAY2_GPIO21.py 
import RPi.GPIO as GPIO
from time import sleep

RELAY2_GPIO = 21 # GPIO number for relay or relay module 

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(RELAY2_GPIO, GPIO.OUT)

try:
    while True:
        GPIO.output(RELAY2_GPIO,GPIO.HIGH)
        sleep(1)
        GPIO.output(RELAY2_GPIO, GPIO.LOW)
        sleep(1)
except KeyboardInterrupt:
        # pass
        GPIO.cleanup()

まとめ

これでRaspberry Pi3でリレーが動作するようになった。

親記事

Arduino と Raspberry Pi の違い

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1