# 生成从红色到绿色的256级过渡颜色列表(RGB565格式) color_list = [] for i in range(256): # 红色通道从31(0x1F)线性递减到0 red = int(31 * (1 - i / 255)) # 绿色通道从0线性递增到63(0x3F) green = int(63 * (i / 255)) # 组合为RGB565格式(高位在前) color = (red << 11) | (green << 5) color_list.append(f"0x{color:04X}") print(color_list)
my_colors = [0xF800, 0xF000, 0xF000, 0xF000, 0xF000, 0xF020, 0xF020, 0xF020, 0xF020, 0xE840, 0xE840, 0xE840, 0xE840, 0xE860, 0xE860, 0xE860, 0xE860, 0xE080, 0xE080, 0xE080, 0xE080, 0xE0A0, 0xE0A0, 0xE0A0, 0xE0A0, 0xD8C0, 0xD8C0, 0xD8C0, 0xD8C0, 0xD8E0, 0xD8E0, 0xD8E0, 0xD8E0, 0xD100, 0xD100, 0xD100, 0xD100, 0xD120, 0xD120, 0xD120, 0xD120, 0xD140, 0xC940, 0xC940, 0xC940, 0xC960, 0xC960, 0xC960, 0xC960, 0xC980, 0xC180, 0xC180, 0xC180, 0xC1A0, 0xC1A0, 0xC1A0, 0xC1A0, 0xC1C0, 0xB9C0, 0xB9C0, 0xB9C0, 0xB9E0, 0xB9E0, 0xB9E0, 0xB9E0, 0xBA00, 0xB200, 0xB200, 0xB200, 0xB220, 0xB220, 0xB220, 0xB220, 0xB240, 0xB240, 0xAA40, 0xAA40, 0xAA60, 0xAA60, 0xAA60, 0xAA60, 0xAA80, 0xAA80, 0xA280, 0xA280, 0xA2A0, 0xA2A0, 0xA2A0, 0xA2A0, 0xA2A0, 0xA2C0, 0x9AC0, 0x9AC0, 0x9AC0, 0x9AE0, 0x9AE0, 0x9AE0, 0x9AE0, 0x9B00, 0x9300, 0x9300, 0x9300, 0x9320, 0x9320, 0x9320, 0x9320, 0x9340, 0x8B40, 0x8B40, 0x8B40, 0x8B60, 0x8B60, 0x8B60, 0x8B60, 0x8B80, 0x8B80, 0x8380, 0x8380, 0x83A0, 0x83A0, 0x83A0, 0x83A0, 0x83C0, 0x83C0, 0x7BC0, 0x7BC0, 0x7BE0, 0x7BE0, 0x7BE0, 0x7BE0, 0x7C00, 0x7C00, 0x7400, 0x7400, 0x7420, 0x7420, 0x7420, 0x7420, 0x7440, 0x7440, 0x6C40, 0x6C40, 0x6C60, 0x6C60, 0x6C60, 0x6C60, 0x6C80, 0x6C80, 0x6C80, 0x6480, 0x64A0, 0x64A0, 0x64A0, 0x64A0, 0x64C0, 0x64C0, 0x64C0, 0x5CC0, 0x5CE0, 0x5CE0, 0x5CE0, 0x5CE0, 0x5D00, 0x5D00, 0x5D00, 0x5500, 0x5520, 0x5520, 0x5520, 0x5520, 0x5540, 0x5540, 0x5540, 0x4D40, 0x4D40, 0x4D60, 0x4D60, 0x4D60, 0x4D60, 0x4D80, 0x4D80, 0x4580, 0x4580, 0x45A0, 0x45A0, 0x45A0, 0x45A0, 0x45C0, 0x45C0, 0x45C0, 0x3DC0, 0x3DE0, 0x3DE0, 0x3DE0, 0x3DE0, 0x3E00, 0x3E00, 0x3E00, 0x3600, 0x3620, 0x3620, 0x3620, 0x3620, 0x3640, 0x3640, 0x3640, 0x2E40, 0x2E60, 0x2E60, 0x2E60, 0x2E60, 0x2E80, 0x2E80, 0x2E80, 0x2680, 0x26A0, 0x26A0, 0x26A0, 0x26A0, 0x26C0, 0x26C0, 0x26C0, 0x26C0, 0x1EE0, 0x1EE0, 0x1EE0, 0x1EE0, 0x1F00, 0x1F00, 0x1F00, 0x1F00, 0x1720, 0x1720, 0x1720, 0x1720, 0x1740, 0x1740, 0x1740, 0x1740, 0x0F60, 0x0F60, 0x0F60, 0x0F60, 0x0F80, 0x0F80, 0x0F80, 0x0F80, 0x07A0, 0x07A0, 0x07A0, 0x07A0, 0x07C0, 0x07C0, 0x07C0, 0x07C0, 0x07E0]
# 双色LED灯通过设计占空比改变灯的亮度和颜色实验 # 1、导入必要库PWMLED(用脉宽调制的方法控制双色LED灯亮度和颜色) from gpiozero import PWMLED print(f"PWMLED导入成功") from time import sleep # 2、定义颜色和PIN脚 my_colors = [0xff00, 0xee00, 0xbb00, 0xaa00, 0x00ff, 0x00ee, 0x00aa] my_pins = [17, 18] # 3、实例化PIN脚 pin_red = PWMLED(pin=my_pins[0], initial_value=0, frequency=2000) pin_green = PWMLED(pin=my_pins[1], initial_value=0, frequency=2000) # 4、调用固定函数,功能是将当前获取的值0-255,转化为0-100之间 def my_map(x, in_min, in_max, out_min, out_max): return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min # 5、主函数,将获取到的值,转化为用占空比控制 def my_main(col): val_red = (col & 0xff00) >> 8 val_green = (col & 0x00ff) >> 0 val_red2 = my_map(val_red, 0, 255, 0, 100) val_green2 = my_map(val_green, 0, 255, 0, 100) pin_red.value = val_red2 / 100.0 pin_green.value = val_green2 / 100.0 # 6、循环功能 def my_loop(): while True: for col in my_colors: my_main(col) sleep(0.5) # 7、关闭PIN脚 def my_cuihui(): pin_red.close() pin_green.close() # 8、运行功能 if __name__ == "__main__": try: my_loop() # XXXXX 当近下CTRL+C键时 except KeyboardInterrupt: my_cuihui()
-----------------------------------------------------------------
# 双色LED灯通过设计占空比改变灯的亮度和颜色实验
# 1、导入必要库PWMLED(用脉宽调制的方法控制双色LED灯亮度和颜色)
from gpiozero import PWMLED
print(f"PWMLED导入成功")
from time import sleep
# 2、定义颜色和PIN脚
my_colors = [0xFF00, 0xAA00, 0x7700, 0x5500,0x3300,0x1100,0x00ff,0x0055]
my_pins = [17, 18]
# 3、实例化PIN脚
pin_red = PWMLED(pin=my_pins[0], initial_value=0, frequency=2000)
pin_green = PWMLED(pin=my_pins[1], initial_value=0, frequency=2000)
# 4、调用固定函数,功能是将当前获取的值0-255,转化为0-100之间
def my_map(x, in_min, in_max, out_min, out_max):
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
# 5、主函数,将获取到的值,转化为用占空比控制
def my_main(col):
val_red = (col & 0xff00 ) >> 8
val_green = (col & 0x00ff) >> 0
val_red2 = my_map(val_red, 0, 255, 0, 100)
val_green2 = my_map(val_green, 0, 255, 0, 100)
pin_red.value = val_red2 / 100.0
pin_green.value = val_green2 / 100.0
# 6、循环功能
def my_loop():
while True:
for col in my_colors:
my_main(col)
sleep(0.5)
# 7、关闭PIN脚
def my_cuihui():
pin_red.close()
pin_green.close()
# 8、运行功能
if __name__ == "__main__":
try:
my_loop()
# XXXXX 当近下CTRL+C键时
except KeyboardInterrupt:
my_cuihui()
评论(0)