Raspberry Pi GPIOコード
July 6, 2023
Anonymous
Raspberry Piで、ある指定したGPIOの出力をオンオフするコードと、指定したGPIOの入力を読み出すコードを書いてください。言語はPythonです。
ChatGPT
PythonでRaspberry PiのGPIOを操作する場合、Rpi.GPIOまたはGPIO Zeroといったライブラリを使います。以下に、Rpi.GPIOを使用したサンプルコードを示します。
GPIOを出力モードに設定し、その出力をオン・オフするコード:
pythonimport RPi.GPIO as GPIO
import time
# GPIO番号を指定します
GPIO_PIN = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN, GPIO.OUT)
try:
while True:
# GPIOをONにします
GPIO.output(GPIO_PIN, GPIO.HIGH)
time.sleep(1) # 1秒待ちます
# GPIOをOFFにします
GPIO.output(GPIO_PIN, GPIO.LOW)
time.sleep(1) # 1秒待ちます
except KeyboardInterrupt:
# KeyboardInterruptが起きたときに、GPIOの状態をクリーンアップします
GPIO.cleanup()
GPIOを入力モードに設定し、その入力を読み出すコード:
pythonimport RPi.GPIO as GPIO
# GPIO番号を指定します
GPIO_PIN = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN, GPIO.IN)
try:
while True:
# GPIOの入力を読み取ります
input_value = GPIO.input(GPIO_PIN)
print(f'GPIO {GPIO_PIN} input: {input_value}')
except KeyboardInterrupt:
# KeyboardInterruptが起きたときに、GPIOの状態をクリーンアップします
GPIO.cleanup()
以上のコードは、指定したGPIOの出力を1秒ごとにオン・オフしたり、GPIOの入力を読み出したりします。具体的なGPIOの番号は適宜変更してください。また、コードはキーボード割り込み(Ctrl+Cなど)で終了します。
Anonymous
それぞれを関数にしてください。GPIO出力はset_gpio(pin, value)、入力はget_gpio(pin)としてください。
ChatGPT
指定されたインターフェースに従って関数を定義します。
pythonimport RPi.GPIO as GPIO
def setup_gpio(pin, mode):
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, mode)
def set_gpio(pin, value):
setup_gpio(pin, GPIO.OUT)
GPIO.output(pin, value)
def get_gpio(pin):
setup_gpio(pin, GPIO.IN)
return GPIO.input(pin)
これらの関数では、set_gpio
は指定されたGPIOピンを出力モードに設定し、指定された値(GPIO.HIGHまたはGPIO.LOW)を設定します。get_gpio
は指定されたGPIOピンを入力モードに設定し、現在の入力値を返します。
ただし、このコードはGPIOのモードを頻繁に変更するため、特定のピンが常に入力または出力として使われるのであれば、setup_gpio
関数の呼び出しは初期化部分に移動した方が良いでしょう。また、全てのGPIO操作後にGPIO.cleanup()
を呼び出すことを忘れないようにしてください。