Raspberry PiのGPIOから出力できる電流は非常に小さいため、大きな電流が必要なモータやポンプを直接駆動することができません。
そのような場合に、役に立つのがリレー回路です。大きな電流を必要とする負荷を、専用の電源とそれを制御するリレー回路によって接続することでRaspberry Piからコントロールできるようになります。
今回はSODIALというメーカーのリレーモジュールを購入しましたので、Raspberry Piからリレー回路を制御する方法について解説します。
Raspberry Pi(ラズベリーパイ)とは
Raspberry Pi(ラズベリーパイ)はイギリスのラズベリーパイ財団が教育用に開発したボードコンピュータです。
最新のRaspberry Pi 4では、ARMアーキテクチャを採用したBroadcom製の高性能SoC BCM2711を搭載しており、1.5GHzで動作するARM Cortex-A72が4コアとマイコンボードの中では非常に高速な処理能力を持っています。また、ユーザーがアクセス可能な40ピンのGPIOも搭載しており、外部ハードウェアを制御することが可能です。
詳細なスペック等は以下の記事で解説していますので、あわせてご覧ください。
リレー回路モジュール
今回購入したリレーモジュールはSODIALというメーカーのモノです。おそらく中国製かと思いますがアマゾン等で購入することができます。
メーカーのデータシートを探しても見当たらないのですが、かずいさんが以下のサイトで回路図を作成してくれていますので、参考にさせて頂きました。
Raspberry Piとの接続
こちらがリレーモジュールの実物です。
写真右側のピンヘッダをRaspberry piのGPIOと接続して使用します。
反対側はRaspberry Piで制御したい回路を接続するための端子台が実装されています。
私の場合はこちら側に水をくみ上げるためのポンプを接続して使用する予定です。
今回はまだ制御対象となるポンプとポンプ用の電源が届いていないため、Raspberry Piだけを接続してPythonの制御プログラムの動作テストをしてみました。写真がRaspberry Piと接続した様子です。(デバッグのためオシロを繋いでいます)
リレー回路の制御方法
リレー回路を制御するためのコードを解説します。
リレー回路を制御するための制御信号をGPIOライブラリpigpioを使用して、リレーモジュールの「IN1」の端子と接続しているGPIOのピンの電圧を変化させます。
pigpioの使い方は以下の記事で解説していますので、あわせてご覧ください。
今回はGPIO23番ピンを使用することにしましたので、使用するピンのモード設定をします。
今回は出力ピンとして使うため「OUTPUT」に設定します。
pi.set_mode(pin1, pigpio.OUTPUT) #リレー制御用のピンを出力ポートに設定
実際にピンの出力状態を変化させるにはwriteメソッドを使用します。
第1引数はピン番号、第2引数はピンの状態となります。(1:ON 0:OFF)
pi.write(pin1, 1) #リレーON
作成したソースコード
作成したソースコードは以下の通りです。
3秒ごとにリレーをON/OFFするプログラムです。
import pigpio
import time
#使用するピン番号を指定
pin1 = 23 #GPIO23番ピンを指定
pi = pigpio.pi()
pi.set_mode(pin1, pigpio.OUTPUT) #リレー制御用のピンを出力ポートに設定
while True:
pi.write(pin1, 1) #リレーON
time.sleep(3) #3秒停止する
pi.write(pin1, 0) #リレーOFF
time.sleep(3) #3秒停止する
実行結果
先ほどのプログラムを実行した状態を動画で撮影してみました。
Raspberry PiのプログラムからGPIOの出力を切り替えると、「カチッ」という音がしてリレーが切り替わっているのが確認できました。
\ Pythonを自宅で好きな時に学べる! /
まとめ
今回はリレー回路の使い方について解説してみました。今後はこのリレーでポンプを制御して、植物の自動水やり器を作成する予定です。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
それでは、また次の記事でお会いしましょう。
コメント