ラズベリーパイでGPIO,PWMを使用する時の設定方法まとめ

こんばんは、ボーノです。

ラズベリーパイでGPIOやPWM設定をする事があるのですが、その設定方法を調べてもコンパクトにまとまっているものが見当たらなかったです。

最低限のものだけまとめてみたので、良かったらご参考にして下さい。

GPIO、PWMの設定方法まとめ

#######準備#######
#呼び出し
import RPi.GPIO as GPIO
#モード指定
GPIO.setmode(GPIO.BCM)  #GPIO.BOARDは使わない方がベター。BOARDは見た目のピン配置のため、ラズパイのシリーズによって機能が変わってしまい、互換性がなくなる

#######入力#######
GPIO.setup(pinNO,GPIO.IN)
#セットアップ例
GPIO.setup(0,GPIO.IN)     #このピンはSDAと併用
GPIO.setup(1,GPIO.IN)     #このピンはSCLと併用
GPIO.setup(4,GPIO.IN)
GPIO.setup(17,GPIO.IN)
GPIO.setup(21,GPIO.IN)
GPIO.setup(22,GPIO.IN)
GPIO.setup(10,GPIO.IN)    #このピンはMOSIと併用
GPIO.setup(9,GPIO.IN)     #このピンはMISOと併用
GPIO.setup(11,GPIO.IN)    #このピンはSCKLと併用
GPIO.setup(14,GPIO.IN)    #このピンはTXDと併用
GPIO.setup(15,GPIO.IN)    #このピンはRXDと併用
GPIO.setup(18,GPIO.IN)
GPIO.setup(23,GPIO.IN)
GPIO.setup(24,GPIO.IN)
GPIO.setup(25,GPIO.IN)

#######出力#######
GPIO.setup(pinNO,OUTPUT)
#セットアップ例
GPIO.setup(8,OUTPUT)
GPIO.setup(7,OUTPUT)
#出力制御
GPIO.output(pinNO,True)
GPIO.output(pinNO,False)

#######クリア#######
#最後にクリアしないと、次にポート設定した時にエラーになる
GPIO.cleanup()

#######PWM#######
#セットアップ
any_name = GPIO.PWM(XX,YYYY)   #XX:pinNO, YYYY:frequency
#実行
any_name.start(ZZ)             #ZZ:Duty
#出力制御
any_name.ChangeDutyCycle(ZZ)   #ZZ:newDuty
any_name.ChangeFrequency(BBB)  #BBB:frequency