パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

LEDを並べてLチカ

2018-11-13 | Raspberry Pi 2 or 3 or Pico


そういえば昔、ナイトライダーのフロントのLED表現してみたいなというのを思い出して今ならできるなと作ってみました。

利用したパーツ
(秋月電子)
ブレッドボード1枚 200円
ジャンパーワイヤ オスオスセット60本以上 220円
ジャンパーワイヤ メスメスセット10本 330円
カーボン抵抗1kΩセット100本 100円
黄色LED10個入り(OS5YKA3131A) 200円




ブレッドボードはこんな感じ。




ブレッドボードのLED上がわにアノード(+側がならんでいます)
LEDは左からGPIOの26,19,13,6,5,11,9,10,22につながっていて、右端(-側)はGroundに接続です。


ソースは最初がナイトライダー風で次が123と表示しているサンプルです。


import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

def pinSet(pin_num,sw):
  if pin_num in [22,10,9,11,5,6,13,19,26]:
    if sw==0:
      GPIO.setup(pin_num, GPIO.OUT) 
      GPIO.output(pin_num, GPIO.LOW)
    if sw==1:
      GPIO.setup(pin_num, GPIO.OUT) 
      GPIO.output(pin_num, GPIO.HIGH)   

def main():
  led=[22,10,9,11,5,6,13,19,26]
  px=0
  dx=1
  for i in range(200):
    for j in range(9):
      pinSet(led[j],0)
    pinSet(led[px],1)
    if px==8:dx=-1
    if px==0:dx=1
    px+=dx
    time.sleep(0.02)    
  GPIO.cleanup()                      

main()




import RPi.GPIO as GPIO
import time

"""
y=[]
y+=["113567788888876444222122331111"]
y+=["113567788888888645423223342111"]
y+=["113566677788888854433335664111"]
y+=["124577766678888875554567775111"]
y+=["124676556788888887752123676211"]
y+=["224542211577888888642354367211"]
y+=["234424523557788887544455667411"]
y+=["234555666777788887777777777511"]
y+=["235677777777778888888888887611"] 
"""
y=[]
y+=["000000000000000000000008888800"]
y+=["000880000000888880000080000080"]
y+=["008080000008000008000000000080"]
y+=["000080000000000008000000000800"]
y+=["000080000000000008000000888000"]
y+=["000080000000000880000000000800"]
y+=["000080000000088000000000000080"]
y+=["000080000000800000000000000080"]
y+=["008888880008888888880088888800"]


GPIO.setmode(GPIO.BCM)

def pinSet(pin_num,sw):
  if pin_num in [22,10,9,11,5,6,13,19,26]:
    if sw==0:
      GPIO.setup(pin_num, GPIO.OUT) 
      GPIO.output(pin_num, GPIO.LOW)
    if sw==1:
      GPIO.setup(pin_num, GPIO.OUT) 
      GPIO.output(pin_num, GPIO.HIGH)

def main():
  led=[22,10,9,11,5,6,13,19,26]
  for t in range(10):
    for px in range(len(y[0])):
      for  n in range(1,9):
        time.sleep(0.005)
        for py in range(9):
          if int(y[py][px])>=n:
            pinSet(led[py],1)
          else:
            pinSet(led[py],0)
      
  GPIO.cleanup()                      

main()


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。