鱼C论坛

 找回密码
 立即注册
查看: 2327|回复: 4

[技术交流] 树莓派学习障碍

[复制链接]
发表于 2020-7-3 17:50:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import RPi.GPIO as GPIO
  2. import time

  3. colors = [0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF]
  4. R = 11
  5. G = 12
  6. B = 13

  7. def setup(Rpin, Gpin, Bpin):
  8.         global pins
  9.         global p_R, p_G, p_B
  10.         pins = {'pin_R': Rpin, 'pin_G': Gpin, 'pin_B': Bpin}
  11.         GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
  12.         for i in pins:
  13.                 GPIO.setup(pins[i], GPIO.OUT)   # Set pins' mode is output
  14.                 GPIO.output(pins[i], GPIO.HIGH) # Set pins to high(+3.3V) to off led
  15.        
  16.         p_R = GPIO.PWM(pins['pin_R'], 2000)  # set Frequece to 2KHz
  17.         p_G = GPIO.PWM(pins['pin_G'], 1999)
  18.         p_B = GPIO.PWM(pins['pin_B'], 5000)
  19.        
  20.         p_R.start(100)      # Initial duty Cycle = 0(leds off)
  21.         p_G.start(100)
  22.         p_B.start(100)

  23. def map(x, in_min, in_max, out_min, out_max):
  24.         return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min

  25. def off():
  26.         for i in pins:
  27.                 GPIO.output(pins[i], GPIO.HIGH)    # Turn off all leds

  28. def setColor(col):   # For example : col = 0x112233
  29.         R_val = (col & 0xff0000) >> 16
  30.         G_val = (col & 0x00ff00) >> 8
  31.         B_val = (col & 0x0000ff) >> 0

  32.         R_val = map(R_val, 0, 255, 0, 100)
  33.         G_val = map(G_val, 0, 255, 0, 100)
  34.         B_val = map(B_val, 0, 255, 0, 100)
  35.        
  36.         p_R.ChangeDutyCycle(100-R_val)     # Change duty cycle
  37.         p_G.ChangeDutyCycle(100-G_val)
  38.         p_B.ChangeDutyCycle(100-B_val)

  39. def loop():
  40.         while True:
  41.                 for col in colors:
  42.                         setColor(col)
  43.                         time.sleep(1)

  44. def destroy():
  45.         p_R.stop()
  46.         p_G.stop()
  47.         p_B.stop()
  48.         off()
  49.         GPIO.cleanup()

  50. if __name__ == "__main__":
  51.         try:
  52.                 setup(R, G, B)
  53.                 loop()
  54.         except KeyboardInterrupt:
  55.                 destroy()
复制代码

为啥要设置color的元祖,意义有什么作用还有PWM控制的频率为啥设置这个数值
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-3 17:59:10 | 显示全部楼层
color 是数组吧,意义就是用起来方便。

频率拍脑袋定,你改一个差别大的数,看一下效果就知道了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-6 09:03:29 | 显示全部楼层
赚小钱 发表于 2020-7-3 17:59
color 是数组吧,意义就是用起来方便。

频率拍脑袋定,你改一个差别大的数,看一下效果就知道了。

好的,我试试,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-6 10:39:07 | 显示全部楼层
mhxy199069 发表于 2020-7-6 09:03
好的,我试试,谢谢

调试 + 控制变量法,只要有耐心,能读懂任何代码。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 10:04:03 | 显示全部楼层
赚小钱 发表于 2020-7-6 10:39
调试 + 控制变量法,只要有耐心,能读懂任何代码。

谢谢指教
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 05:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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