Warning: preg_match(): Compilation failed: regular expression is too large at offset 35805 in /home/wp769435/a-mun.com/public_html/wp-content/plugins/easy-table-of-contents/easy-table-of-contents.php on line 1806
# 必要なライブラリをインポート
import RPi.GPIO as GPIO
import time
# GPIOのモードを設定
GPIO.setmode(GPIO.BCM)
# ピン番号を設定
LED_PIN = 18
GPIO.setup(LED_PIN, GPIO.OUT)
# LEDを点滅させる
for i in range(10):
GPIO.output(LED_PIN, GPIO.HIGH) # 点灯
time.sleep(1) # 1秒待つ
GPIO.output(LED_PIN, GPIO.LOW) # 消灯
time.sleep(1) # 1秒待つ
# GPIOのクリーンアップ
GPIO.cleanup()
動作解説
GPIO.setmode: GPIOピンの番号付け方式を指定。
GPIO.setup: 使用するピンを出力モードに設定。
GPIO.output: ピンのHIGH/LOWを切り替えてLEDを制御。
GPIO.cleanup: 使用後にピン設定をリセット。
3. 実践例:温度センサーのデータ取得
3.1 サンプルコード
# 温度センサーのデータを取得するコード
import Adafruit_DHT
# センサーの種類とピンを指定
SENSOR = Adafruit_DHT.DHT11
PIN = 4
# 温度と湿度を取得
humidity, temperature = Adafruit_DHT.read_retry(SENSOR, PIN)
if humidity is not None and temperature is not None:
print(f"温度: {temperature:.1f}°C, 湿度: {humidity:.1f}%")
else:
print("センサーからデータを取得できませんでした")
動作解説
Adafruit_DHT: DHTセンサーのライブラリ。
read_retry: センサーからデータを再試行しながら取得。
データ表示: 温度と湿度をフォーマットして出力。
4. 練習問題
以下の課題に挑戦してみましょう。
スイッチを使用してLEDをオンオフするコードを作成してください。
DHTセンサーのデータをファイルに保存するプログラムを作成してください。
5. 練習問題の解答と解説
問1の解答例
# スイッチでLEDを制御
import RPi.GPIO as GPIO
import time
LED_PIN = 18
SWITCH_PIN = 23
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
while True:
if GPIO.input(SWITCH_PIN) == GPIO.LOW:
GPIO.output(LED_PIN, GPIO.HIGH) # スイッチが押されたら点灯
else:
GPIO.output(LED_PIN, GPIO.LOW) # スイッチが離されたら消灯
except KeyboardInterrupt:
GPIO.cleanup()