回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

挑战二 双电位器对光的三原色进行基本调值 简单

头像 我爱蘑菇 2019.02.17 1109 1
project-image

【项目由来】

    上学的时候知道颜色的三原色是:红、蓝、黄,在接触到LED电子模块时,发现三个引脚对应的颜色值是红、绿、蓝。为什么是红绿蓝而不是红黄蓝呢,这个问题在心中藏了很长时间,由于自己的不求甚解竟也没有去探究。直到最近,章老师发布了作品,我也才认真的考虑这个问题。很为自己不求甚解的惰性羞愧。我本身更是一个不擅长美术的人,经常搞不清哪些颜色相配得出另外一种什么颜色。希望通过本文对光的三原色的探究,来帮助自己。如果有其他爱好者也能通过本文受益,就更有些成就感了!老师用了一个电位器实现任务,我手头有两个,就用两个电位器来尝试吧!

【确定问题】

     光的三原色是红、绿、蓝。本任务要实现三种基本光值的配色,即红+红=红,红+绿=黄、红 +蓝=紫、绿 +绿=绿、蓝 +绿=青、蓝 +蓝=蓝。分别转动两个电位器,当电位器扭到不同档位时,灯带会显示出配出的效果颜色。

project-image

【制作原型】

project-image
project-image

材料清单:电位器*2,灯带*1、arduino主板及扩展板(因原灯带接口与ar主板连接不太方便,便用杜邦线重接了下)

制作过程:

    1、通过串口检测电位器的值,将电位器的值映射到0~270度区域。将区域根据度数分为三部分,0~90度为红色区,90~180度为绿色区,180~270度为蓝色区。因电位器的值有个体差异,得出的颜色区域不平均。

    2、确定了区域值后,用圆规画出调色盘

    3、对各部件进行固定

程序思路:

    1、设定两个变量A1、A2记录电位器的当前值

    2、对A1、A2的值进行判断,用六个变量red,green,blue,red1,green1,blue1分别记录每个电位器扭至的区域值,当A1在0至90度区域,设red=255,green=0,blue=0,当A1在0至180度区域,设red=0,green=255,blue=0,当A1在180至270度区域,red=0,green=0,blue=255.A2值的设定同A1,用red1,green1,blue1记录。

   3、用循环嵌套判断六个颜色变量的值,当red 和 red1同为255时,灯带显示红色。当green 和 green1同为255时,灯带显示绿色。当blue和 blue1同为255时,灯带显示蓝色。当red 和 green1或red1和green同为255时,灯带显示黄色。当red 和 blue1或red1和blue同为255时,灯带显示黄色。当green 和 blue1或green1和blue同为255时,灯带显示紫色。

    4、因只有两个电位器,本程序没有实现三种光值的配色

源程序:https://gitee.com/woaimogu/dual_potential_palette.git

评论

user-avatar
  • 许培享

    许培享2019.02.23

    引导小孩 ,玩中学能手👏

    0