注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
1.1.3 LED バーグラフ¶
概要¶
このプロジェクトでは、LEDバーグラフ上のライトを順番に点灯させます。
必要な部品¶
このプロジェクトには、次のコンポーネントが必要です。
一式を購入するのが便利です、こちらがリンクです:
名前 |
このキットのアイテム |
リンク |
---|---|---|
Raphael Kit |
337 |
以下のリンクから別々に購入することもできます。
コンポーネントの紹介 |
購入リンク |
---|---|
- |
回路図¶
T-Board Name |
physical |
wiringPi |
BCM |
GPIO18 |
Pin 12 |
1 |
18 |
GPIO23 |
Pin 16 |
4 |
23 |
GPIO24 |
Pin 18 |
5 |
24 |
GPIO25 |
Pin 22 |
6 |
25 |
SPICE0 |
Pin 24 |
10 |
8 |
SPICE1 |
Pin 26 |
11 |
7 |
GPIO12 |
Pin 32 |
26 |
12 |
GPIO16 |
Pin 36 |
27 |
16 |
GPIO20 |
Pin 38 |
28 |
22 |
GPIO21 |
Pin 40 |
29 |
21 |
実験手順¶
ステップ1: 回路を組み立てます。
注釈
接続する際に方向に注意してください。逆に接続すると点灯しません。
ステップ2: コードのフォルダに移動します。
cd ~/raphael-kit/python-pi5
ステップ3: 実行可能ファイルを実行します。
sudo python3 1.1.3_LedBarGraph_zero.py
コードを実行した後、LEDバーグラフ上のLEDが定期的に点灯および消灯するのを確認できます。
コード
注釈
以下のコードは 変更/リセット/コピー/実行/停止 することができます。ただし、それを行う前に「raphael-kit/python_5」というソースコードのパスに移動する必要があります。コードを変更した後、そのまま実行して効果を確認できます。
#!/usr/bin/env python3
from gpiozero import LED
from time import sleep
# Define GPIO pins where LEDs are connected
led_pins = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21]
# Create LED objects for each pin
leds = [LED(pin) for pin in led_pins]
def odd_led_bar_graph():
# Sequentially light up odd-numbered LEDs (index 0, 2, 4, etc.)
for i in range(5):
j = i * 2 # Calculate odd index
leds[j].on() # Turn on odd-numbered LED
sleep(0.3) # Delay for visual effect
leds[j].off() # Turn off LED
def even_led_bar_graph():
# Sequentially light up even-numbered LEDs (index 1, 3, 5, etc.)
for i in range(5):
j = i * 2 + 1 # Calculate even index
leds[j].on() # Turn on even-numbered LED
sleep(0.3) # Delay for visual effect
leds[j].off() # Turn off LED
def all_led_bar_graph():
# Sequentially light up all LEDs one by one
for led in leds:
led.on() # Turn on LED
sleep(0.3) # Delay for visual effect
led.off() # Turn off LED
def turn_off_all_leds():
# Turn off all LEDs at once
for led in leds:
led.off()
try:
# Main loop to cycle through LED patterns
while True:
odd_led_bar_graph() # Activate odd-numbered LEDs
sleep(0.3) # Pause between patterns
even_led_bar_graph() # Activate even-numbered LEDs
sleep(0.3) # Pause between patterns
all_led_bar_graph() # Activate all LEDs
sleep(0.3) # Pause before restarting
except KeyboardInterrupt:
# Handle interruption (Ctrl+C) gracefully
turn_off_all_leds() # Ensure all LEDs are turned off on exit
pass
コードの説明
これらの行は必要なクラスと関数をインポートします。LED制御のための
gpiozero
のLED
および遅延のためのtime
のsleep
です。#!/usr/bin/env python3 from gpiozero import LED from time import sleep
led_pins
リストにはGPIOピン番号が含まれており、leds
はled_pins
の各ピンに対応するLED
オブジェクトのリストです。# Define GPIO pins where LEDs are connected led_pins = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21] # Create LED objects for each pin leds = [LED(pin) for pin in led_pins]
LEDバーグラフの奇数番号のLEDを順番に点灯させます。
def odd_led_bar_graph(): # Sequentially light up odd-numbered LEDs (index 0, 2, 4, etc.) for i in range(5): j = i * 2 # Calculate odd index leds[j].on() # Turn on odd-numbered LED sleep(0.3) # Delay for visual effect leds[j].off() # Turn off LED
LEDバーグラフの偶数番号のLEDを順番に点灯させます。
def even_led_bar_graph(): # Sequentially light up even-numbered LEDs (index 1, 3, 5, etc.) for i in range(5): j = i * 2 + 1 # Calculate even index leds[j].on() # Turn on even-numbered LED sleep(0.3) # Delay for visual effect leds[j].off() # Turn off LED
LEDバーグラフのLEDを1つずつ順番に点灯させます。
def all_led_bar_graph(): # Sequentially light up all LEDs one by one for led in leds: led.on() # Turn on LED sleep(0.3) # Delay for visual effect led.off() # Turn off LED
while True
ループはLEDパターンを連続してサイクルします。except
ブロックはKeyboardInterrupt(Ctrl+C)を処理し、終了時にすべてのLEDが消灯することを確認します。
try: # Main loop to cycle through LED patterns while True: odd_led_bar_graph() # Activate odd-numbered LEDs sleep(0.3) # Pause between patterns even_led_bar_graph() # Activate even-numbered LEDs sleep(0.3) # Pause between patterns all_led_bar_graph() # Activate all LEDs sleep(0.3) # Pause before restarting except KeyboardInterrupt: # Handle interruption (Ctrl+C) gracefully turn_off_all_leds() # Ensure all LEDs are turned off on exit pass