今回は3つのLEDを光らせます。
ただ光らせてもつまらないので、指定したパターンで光らせてみようと思います。
1. 配線
抵抗をGround側に配線してみました。
自分は知識がないので真相不明ですが、+側に抵抗を配線するのをよく見かけます。
配線と抵抗を減らしたかっただけですが、もしかすると正しくはないかもしれません。
2. Pythonソースコード
GPIOのピン番号と発光パターンにタプルを使用しました。
一度定義したら変更できない、というアレです。
この2つを適宜増やすことで、発光させるLEDの数を増減でき、光らせ方も変わります。
# -*- coding: utf-8 -*- # 日本語コメントをエラーとしないように、UTF-8で保存 # 使用するライブラリのインポート import RPi.GPIO as GPIO from time import sleep # −−− 定数 --- # LEDのピン番号たち GPIOS = (18, 23, 24) # 実行回数 LOOP_COUNT = 10 # 実行間隔 SLEEP_TIME = 0.1 # 光らせるパターン(1が光り、0が消える) PATTERN = ((1, 0, 0), (0, 1, 0), (0, 0, 1), ) # −−− GPIOの設定 --- # ピンの指定をGPIO番号で行う GPIO.setmode(GPIO.BCM) # 対象ピン(GPIO)を出力に設定 for gp in GPIOS: GPIO.setup(gp, GPIO.OUT) # ループ実行 for repeat in range(LOOP_COUNT): # パターンをぐるぐる for ledSwitch in PATTERN: for index in range(len(GPIOS)): # 1なら光らせる if ledSwitch[index] == 1: GPIO.output(GPIOS[index], GPIO.HIGH) # 待つ sleep(SLEEP_TIME) for index in range(len(GPIOS)): # 光らせていたLEDを消灯 if ledSwitch[index] == 1: GPIO.output(GPIOS[index], GPIO.LOW) # 忘れずに、後処理 GPIO.cleanup()
少し、工夫した感が出てきたかと思います。