mieki256's diary



2016/07/21(木) [n年前の日記]

#1 [raspberrypi] pigpioでLチカ

Raspberry Pi3 + Python + pigpio でサーボモータを制御できたので、少し前の段階に戻って Python + pigpio でLチカ(LED点灯)をしてみたり。

3回点灯させる版。 :

GPIO 17番に抵抗とLEDを繋いで実験。led_pigpio.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# LED flash - pigpio

import pigpio
import time

LED_PIN = 17

pi1 = pigpio.pi()
pi1.set_mode(LED_PIN, pigpio.OUTPUT)

try:
    for i in range(3):
        pi1.write(LED_PIN, 1)
        time.sleep(0.5)
        pi1.write(LED_PIN, 0)
        time.sleep(0.5)

except KeyboardInterrupt:
    pass

print "done."

# cleanup
pi1.set_mode(LED_PIN, pigpio.INPUT)
pi1.stop()

sudo python led_pigpio.py で実行。フツーに光ってくれた。
  • pi1.set_mode(GPIO番号, pigpio.OUTPUT) で、出力モードに。
  • pi1.write(GPIO番号, 1) で、High状態に。
  • pi1.write(GPIO番号, 0) で、Low状態に。
  • pi1.set_mode(GPIO番号, pigpio.INPUT) で、入力モードに。

PWMを使って明るさを変える版。 :

pigpioを使えば、どのピンでもPWMが使えるようで。ココでも GPIO 17番を使って試してみたり。led_pigpio_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# LED flash - pigpio PWM

import pigpio
import time

LED_PIN = 17

pi1 = pigpio.pi()
pi1.set_mode(LED_PIN, pigpio.OUTPUT)
pi1.set_PWM_frequency(LED_PIN, 200)
pi1.set_PWM_range(LED_PIN, 100) # 25 - 40000

try:
    for i in range(3):
        v = 0
        d = 10
        while v >= 0:
            pi1.set_PWM_dutycycle(LED_PIN, v)
            time.sleep(0.1)
            if v >= 100:
                d *= -1
            v += d

except KeyboardInterrupt:
    pass

print "done."

# cleanup
pi1.set_mode(LED_PIN, pigpio.INPUT)
pi1.stop()

sudo python led_pigpio_pwm.py で実行。フツーに明るさが変わってくれた。
  • pi1.set_PWM_frequency(GPIO番号, PWM周波数) で、PWMの周波数(Hz)を設定。
  • pi1.set_PWM_range(GPIO番号, 範囲最大値) で、dutyの範囲を指定。25 - 40000 の間で指定できるらしい。デフォルトでは 255 になってる、と、ドキュメントには書いてあった。
  • pi1.set_PWM_dutycycle(GPIO番号, duty) で、パルス幅の長さを指定。set_PWM_range() で指定した範囲の値を指定できる。

以上です。

過去ログ表示

Prev - 2016/07 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project