注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!

1.1.3 LEDバーグラフ

はじめに

本プロジェクトでは、LEDバーグラフ上の複数のLEDを順次点灯させます。

必要な部品

本プロジェクトには、以下の部品が必要です。

../_images/list_led_bar.png

以下のリンクから一式を購入すると非常に便利です:

名前

このキットのアイテム

リンク

Raphael Kit

337

Raphael Kit

個々の部品も以下のリンクから別途購入可能です。

コンポーネントの紹介

購入リンク

GPIO拡張ボード

購入

ブレッドボード

購入

ジャンパーワイヤー

購入

抵抗器

購入

LEDバーグラフ

-

回路図

T-Board Name

physical

wiringPi

BCM

GPIO17

Pin 11

0

17

GPIO18

Pin 12

1

18

GPIO27

Pin 13

2

27

GPIO22

Pin 15

3

22

GPIO23

Pin 16

4

23

GPIO24

Pin 18

5

24

GPIO25

Pin 22

6

25

SDA1

Pin 3

8

2

SCL1

Pin 5

9

3

SPICE0

Pin 24

10

8

../_images/schematic_led_bar.png

実験手順

ステップ1: 回路を組み立てます。

注釈

接続の方向に注意してください。逆に接続すると点灯しない可能性があります。

../_images/image66.png

ステップ2: コードが保存されているフォルダに移動します。

cd ~/raphael-kit/python/

ステップ3: 実行ファイルを起動します。

sudo python3 1.1.3_LedBarGraph.py

コードが正常に実行されると、LEDバーグラフ上のLEDが順次点灯および消灯します。

コード

注釈

下記のコードは 修正/リセット/コピー/実行/停止 が可能ですが、それに先立って、ソースコードの保存先である raphael-kit/python に移動する必要があります。コードの変更後、その効果を直接確認できます。

import RPi.GPIO as GPIO
import time

ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24]

def oddLedBarGraph():
    for i in range(5):
        j = i*2
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

def evenLedBarGraph():
    for i in range(5):
        j = i*2+1
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

def allLedBarGraph():
    for i in ledPins:
        GPIO.output(i,GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(i,GPIO.HIGH)

def setup():
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)        # Numbers GPIOs by physical location
    for i in ledPins:
        GPIO.setup(i, GPIO.OUT)   # Set all ledPins' mode is output
        GPIO.output(i, GPIO.HIGH) # Set all ledPins to high(+3.3V) to off led

def loop():
    while True:
        oddLedBarGraph()
        time.sleep(0.3)
        evenLedBarGraph()
        time.sleep(0.3)
        allLedBarGraph()
        time.sleep(0.3)

def destroy():
    for pin in ledPins:
        GPIO.output(pin, GPIO.HIGH)      # turn off all leds
    GPIO.cleanup()                       # Release resource

if __name__ == '__main__':     # Program start from here
    setup()
    try:
        loop()
    except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the program destroy() will be  executed.
        destroy()

コード説明

ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24] LEDバーグラフに対応するピン番号(11, 12, 13, 15, 16, 18, 22, 3, 5, 24)を配列に割り当て、LEDを制御します。

def oddLedBarGraph():
    for i in range(5):
        j = i*2
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

LEDバーグラフの奇数位のLEDを順番に点灯させます。

def evenLedBarGraph():
    for i in range(5):
        j = i*2+1
        GPIO.output(ledPins[j],GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.HIGH)

LEDバーグラフの偶数位のLEDを順番に点灯させます。

def allLedBarGraph():
    for i in ledPins:
        GPIO.output(i,GPIO.LOW)
        time.sleep(0.3)
        GPIO.output(i,GPIO.HIGH)

LEDバーグラフ全体を順番に点灯させます。

現象の画像

../_images/image67.jpeg