2016/07/18(月) [n年前の日記]
#1 [raspberrypi] Raspberry Pi3でスイッチを読み取り
Lチカはできたから、今度はスイッチの読み取りを実験。
GPIO 18番にLEDを、GPIO 24番にタクトスイッチを接続。抵抗は、LED用が680Ω、スイッチ用が3.3KΩ。
lwd_sw.py として保存。
sudo python led_sw.py として実行。スイッチを押すとLEDが光った。終了は、Ctrl + C を押す。
 GPIO 18番にLEDを、GPIO 24番にタクトスイッチを接続。抵抗は、LED用が680Ω、スイッチ用が3.3KΩ。
lwd_sw.py として保存。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep
LED_PIN = 18
SW_PIN = 24
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(SW_PIN, GPIO.IN)
try:
    while True:
        if GPIO.input(SW_PIN) == GPIO.HIGH:
            GPIO.output(LED_PIN, GPIO.HIGH)
        else:
            GPIO.output(LED_PIN, GPIO.LOW)
        sleep(0.016)
except KeyboardInterrupt:
    pass
GPIO.cleanup()
- GPIO.setup(ピン番号, GPIO.OUT) で、出力ピンに設定。
 - GPIO.setup(ピン番号, GPIO.IN) で、入力ピンに設定。
 - GPIO.input(ピン番号) で、ピンの入力を調べられる。GPIO.HIGH になってるか、GPIO.LOW になってるかをチェックできる。
 
sudo python led_sw.py として実行。スイッチを押すとLEDが光った。終了は、Ctrl + C を押す。
◎ ついでにLEDをPWM制御。 :
 PWM(pulse width modulation、パルス幅変調)を使って、LEDの明るさが変化するように光らせてみる。
PWMってのは、オンにしてる時間とオフにしてる時間の比率を変化させることで、電力量を調整する方法、という説明で合ってるのかな。どうなんだろ。 _PWMとは | 東芝 ストレージ&デバイスソリューション社 の図を見れば、なんとなく分かるだろうか…。
Raspberry Piの場合、GPIO 18番がPWM制御に使える、という記述をどこかで見かけた。たしかもう1本、使えるピンがあるという話も見かけたけど…。どこだろう…。
led_pwm.py として保存。
sudo python led_pwm.py として実行。こんな感じに。
_raspberry-gpio-python / Wiki / PWM や、 _Raspberry PiでPWM制御を使ってLEDを点滅 - 忘れる前に書き残す が参考になった。
PWMってのは、オンにしてる時間とオフにしてる時間の比率を変化させることで、電力量を調整する方法、という説明で合ってるのかな。どうなんだろ。 _PWMとは | 東芝 ストレージ&デバイスソリューション社 の図を見れば、なんとなく分かるだろうか…。
Raspberry Piの場合、GPIO 18番がPWM制御に使える、という記述をどこかで見かけた。たしかもう1本、使えるピンがあるという話も見かけたけど…。どこだろう…。
led_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
LED_PIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
pwm = GPIO.PWM(LED_PIN, 1000)
pwm.start(0)
try:
    for i in range(3):
        for dc in range(0, 101, 10):
            pwm.ChangeDutyCycle(dc)
            time.sleep(0.1)
        for dc in range(100, -1, -10):
            pwm.ChangeDutyCycle(dc)
            time.sleep(0.1)
except KeyboardInterrupt:
    pass
pwm.stop()
GPIO.cleanup()
- pwm = GPIO.PWM(ピン番号, 周波数) で、PWMを使うピン番号と、PWMの周波数を指定できるらしい。
 - pwm.start(0) で、デューティ(時間幅) を 0 にしてる。
 - pwm.ChangeDutyCycle(デューティ) で、デューティを設定できる。0(%)から100(%)まで指定できる模様。
 
sudo python led_pwm.py として実行。こんな感じに。
_raspberry-gpio-python / Wiki / PWM や、 _Raspberry PiでPWM制御を使ってLEDを点滅 - 忘れる前に書き残す が参考になった。
[   ツッコむ ]
以上です。

