我使用的电位计输出值0-255。我想要它做的是以一种包含256步的方式改变RGB LED的颜色,这将显示LED上的所有颜色,并且你可以获得
问题: 如何将单个值(0-255)转换为可应用于LED的rgb代码?
最明显的解决方案是创建一个包含所有256个可能值的字典,并手动将RGB代码分配给这些值。我不想这样做,我试图找到更多数学解决方案。
答案 0 :(得分:1)
使用其中一个matplotlib colormaps。我推荐jet
色彩图,因为大多数人都熟悉蓝色表示小值的解释,红色表示大值。
from matplotlib import cm
pot_values = [0, 51, 102, 153, 204, 255]
rgb = []
for x in pot_values:
val = cm.jet(float(x)/255)[:3] # The 4th element is gamma
rgb.append([round(x*255) for x in val])
print(rgb)
# Output:
# [[0.0, 0.0, 128.0],
# [0.0, 76.0, 255.0],
# [41.0, 255.0, 206.0],
# [206.0, 255.0, 41.0],
# [255.0, 104.0, 0.0],
# [128.0, 0.0, 0.0]]