无忧启动论坛

 找回密码
 注册
搜索

10.11 使用大量LED(Charlieplexing)

查看数: 11930 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-10-17 09:10

正文摘要:

Using Lots of LEDs (Charlieplexing) NOTE Be sure to check out the accompanying video for this recipe at http://razzpisampler.oreilly.com. Problem You want to control lots of LEDs using as few GPIO ...

回复

eastmz 发表于 2018-10-19 00:01:41
等版块开了,到时再交流
2010chinawy 发表于 2018-10-18 10:52:00
支持一下,就是没时间玩~
邪恶海盗 发表于 2018-10-17 19:38:06
玩不转,帮顶...
wuyou 发表于 2018-10-17 09:55:58
2010chinawy 发表于 2018-10-17 09:33
啥时候开了树莓派版块~

也就是最近一个月的事,欢迎大家一起交流。
2010chinawy 发表于 2018-10-17 09:33:06
啥时候开了树莓派版块~

点评

也就是最近一个月的事,欢迎大家一起交流。  详情 回复 发表于 2018-10-17 09:55
wuyou 发表于 2018-10-17 09:12:26
对输入部分进行判断小改,以防出错:

  1. import RPi.GPIO as GPIO
  2. pins = [18,23,24]

  3. pin_led_states = [
  4.     [1,0,-1], #A
  5.     [0,1,-1], #B
  6.     [-1,1,0], #C
  7.     [-1,0,1], #D
  8.     [1,-1,0], #E
  9.     [0,-1,1]  #F
  10.     ]
  11. GPIO.setmode(GPIO.BCM)

  12. def set_pin(pin_index,pin_state):
  13.     if pin_state == -1:
  14.         GPIO.setup(pins[pin_index],GPIO.IN)
  15.     else:
  16.         GPIO.setup(pins[pin_index],GPIO.OUT)
  17.         GPIO.output(pins[pin_index],pin_state)

  18. def light_led(led_number):
  19.     for pin_index,pin_state in enumerate(pin_led_states[led_number]):
  20.         set_pin(pin_index,pin_state)

  21. set_pin(0,-1)
  22. set_pin(1,-1)
  23. set_pin(2,-1)

  24. try:
  25.     while True:
  26.         x = input("Pin (0 to 5) or 'q' to exit:")
  27.         if '5' >= x >= '0':
  28.             light_led(int(x))
  29.         elif  x in ['q' ,'Q']:
  30.             break
  31.         else:
  32.             print('input error number')
  33. finally:
  34.     GPIO.cleanup()
复制代码

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-27 21:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表