ラズパイ入門まとめ:フルカラーLED & リレーでヒーター制御
Raspberry Pi の定番テーマを、実際にコードを動かしながらまとめて解説します。この記事では フルカラーLED/リレーでヒーター制御 の2テーマを扱います。
各テーマは ブラウザ上の仮想Raspberry Piシミュレーターで、コードを編集しながら自分で動かせます。
1. フルカラーLED
概要
R/G/BをPWMで混ぜて、色相を連続的に変化させる。ブラウザ上の仮想Raspberry Piで、実際にコードを動かしながら挙動を確認できます。
プログラムの内容(ざっくり)
色相環をたどってR・G・Bそれぞれの明るさをPWMで変化させ、フルカラーLEDの色を連続的に変えます。
# === フルカラーLED(PWM混色)===
# 色相環をたどってR/G/Bの明るさを変え、色を連続的に変化させる。
import time
def wheel(p):
p = p % 256
if p < 85:
return (p * 3, 255 - p * 3, 0)
if p < 170:
p -= 85
return (255 - p * 3, 0, p * 3)
p -= 170
return (0, p * 3, 255 - p * 3)
i = 0
while True:
r, g, b = wheel(i)
rgb.color(r, g, b)
if i % 30 == 0:
print(f"色 = ({r}, {g}, {b})")
i = (i + 4) % 256
time.sleep(0.06)
配線
配線図(RGB LED カソードコモン)
GPIO17 ──[220Ω]── R(赤)
GPIO27 ──[220Ω]── G(緑)
GPIO22 ──[220Ω]── B(青)
共通カソード ── GND
シェルの出力
実行すると、Pi側と相手デバイス側に次のような出力がリアルタイムで流れます。
🍓 Raspberry Pi シェル
pi@raspberrypi:~ $ python app.py
色 = (0, 255, 0)
色 = (180, 75, 0)
色 = (150, 0, 105)
色 = (0, 30, 225)
色 = (0, 210, 45)
色 = (0, 255, 0)
色 = (180, 75, 0)
色 = (150, 0, 105)
色 = (0, 30, 225)
コードを編集したらどうなるか
wheel()の式を変えれば色の変化パターンを、sleepを変えれば速さを調整できます。特定の色で固定することもできます。
まとめ
3色のPWM混色でフルカラーを作る基本です。イルミネーションや状態表示に応用できます。
Raspi 仮想シミュレーターのライブ実行結果から生成。ブラウザ上で自分でコードを編集して試せます。
2. リレーでヒーター制御
概要
温度が目標より低いとリレーでヒーターをON。温まると自動でOFF。ブラウザ上の仮想Raspberry Piで、実際にコードを動かしながら挙動を確認できます。
プログラムの内容(ざっくり)
温度が目標TARGET未満ならリレーでヒーターをONにし、達したらOFFにします。温まると自動で止まり、冷えると再び入る自動温度調整です。
# === リレーでヒーター制御(サーモスタット)===
# 温度がTARGET未満ならリレーでヒーターをON、達したらOFF。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT) # リレー
TARGET = 25.0
while True:
t = sensor.temperature
if t < TARGET:
GPIO.output(18, GPIO.HIGH) # ヒーターON
print(f"{t}C < {TARGET}C -> ヒーターON")
else:
GPIO.output(18, GPIO.LOW) # ヒーターOFF
print(f"{t}C >= {TARGET}C -> ヒーターOFF")
time.sleep(1)
配線
配線図(リレー + ヒーター)
GPIO18 ── リレーモジュール IN
リレー COM/NO ── ヒーター電源(AC/DC)
I2C BME280 (0x76) ── 温度センサ
シェルの出力
実行すると、Pi側と相手デバイス側に次のような出力がリアルタイムで流れます。
🍓 Raspberry Pi シェル
pi@raspberrypi:~ $ python app.py
19.59C < 25.0C -> ヒーターON
20.15C < 25.0C -> ヒーターON
20.73C < 25.0C -> ヒーターON
21.33C < 25.0C -> ヒーターON
21.95C < 25.0C -> ヒーターON
22.58C < 25.0C -> ヒーターON
23.16C < 25.0C -> ヒーターON
計測値(温度(℃))の推移:
コードを編集したらどうなるか
TARGETを上げると高い温度で安定し、下げると低い温度で安定します。ヒステリシス(ON/OFFの差)を設けるとリレーの頻繁な切り替えを防げます。
まとめ
リレーで大電力機器をON/OFF制御する基本です。エアコンや電気ポットなど身近な自動制御の仕組みです。
Raspi 仮想シミュレーターのライブ実行結果から生成。ブラウザ上で自分でコードを編集して試せます。
おわりに
どちらもラズパイの基礎として役立つテーマです。気に入ったらLGTM・ストックしていただけると励みになります。他のテーマも順次まとめていきます。
