Raspbian 資料一覧
pigpioライブラリでPWMを使ってLEDの明るさを変えてみる
2016/10/10更新
対応バージョン: Raspbian Jessie Lite - September 2016
PWMを使ってLEDの明るさを変えてみる。
pigpioライブラリでPWMを使うには以下のメソッドを利用する。
set_PWM_frequency(GPIO番号, PWM周波数)
PWMの周波数(Hz)を指定。デフォルトは800。
set_PWM_range(GPIO番号, PWM最大値)
PWM値(μs)の最大値を指定。指定可能な値は25〜40000。デフォルトは255。
set_PWM_dutycycle(GPIO番号, デューティ比)
デューティ比(率ではなく値)を指定。0〜set_PWM_range()で指定した範囲の値を指定できる。
3メソッドとも、set_と対になるget_も存在する。
PWM関連のメソッドは他にもあるがここでは割愛する。詳しくはpigpioライブラリ公式サイトを参照のこと。
実装
ここではPWM周波数を50Hz、デューティを0〜100μsまで10μs刻みで増減させてみる。結線は単純なGPIOポート22ピン(GPIO 25) → 抵抗(330Ω) → LEDのアノード(+) → LEDのカソード(-) → GPIOポート6ピン(GND)とする。
#!/usr/bin/env python # -*- coding: utf-8 -*- import pigpio from time import sleep PIN = 25 FREQ = 50 RANGE = 100 pi = pigpio.pi() pi.set_mode(PIN, pigpio.OUTPUT) pi.set_PWM_frequency(PIN, FREQ) pi.set_PWM_range(PIN, RANGE) try: d = 0 r = 10 while True: pi.set_PWM_dutycycle(PIN, d) sleep(0.1) d += r if d >= RANGE or d <= 0: r *= -1 except KeyboardInterrupt: pass pi.set_mode(PIN, pigpio.INPUT) pi.stop()
関連資料・記事
参考サイト
Raspberry Pi (Wikipedia)
RaspberryPi技術情報 (Qiita)
Raspbian技術情報 (Qiita)
IT女子のラズベリーパイ入門奮闘記 (Device Plus)
RaspberryPi電子工作入門 (ツール・ラボ)