×

简单的RGB调光器

消耗积分:2 | 格式:zip | 大小:0.48 MB | 2022-12-29

王秀珍

分享资料个

描述

RGB 灯串的颜色总是有些不平衡,所以我们从来没有纯白光。这就是为什么我们需要带记忆功能的可调光调光器,以便为照片或工作设置所需的光温。

 

 

代码

/*

带共阳极的 LED

BUTTONENT=选择绿色

BUTTONUP=选择蓝色

BUTTONDOWN=选择红色

在输入选定的颜色灯 1 秒

上/下 = +/- 亮度选择的颜色

再次进入保存设置并熄灭0.5秒

*/

#include

常数 int BLED = 3; //蓝色LED的输出,也是重合PWM值的地址

常量 int GLED = 5; //绿色LED的输出,也是重合PWM值的地址

常数 int RLED=6;//红色LED的输出,也是重合PWM值的地址

const int BUTTONENT=7;

常量 int BUTTONUP=8;

const int BUTTONDOWN=2;

字节PWMB;

字节PWMG;

字节PWMR;

无效设置()//

{

引脚模式(BLED,输出);

引脚模式(GLED,输出);

引脚模式(RLED,输出);

pinMode(BUTTONENT, INPUT_PULLUP);

pinMode(BUTTONDOWN, INPUT_PULLUP);

pinMode(BUTTONUP, INPUT_PULLUP);

PWMB = EEPROM.read(BLED);

PWMG = EEPROM.read(GLED);

PWMR = EEPROM.read(RLED);

模拟写入(BLED,PWMB);

模拟写入(RLED,PWMR);

模拟写入(GLED,PWMG);

}

void adjust (int color) //调整函数

{

模拟写入(BLED,PWMB);

模拟写入(RLED,PWMR);

模拟写入(GLED,PWMG);

如果(颜色==BLED)

{

while (digitalRead(BUTTONENT)==HIGH)

{

如果 (digitalRead(BUTTONUP)==LOW)

{

模拟写入(BLED,PWMB=PWMB-10);

EEPROM.write(BLED, PWMB);

延迟(300);

}

如果 (digitalRead(BUTTONDOWN)==LOW)

{

模拟写入(BLED,PWMB=PWMB+10);

EEPROM.write(BLED, PWMB);

延迟(300);

}

}

}

如果(颜色==GLED)

{

while (digitalRead(BUTTONENT)==HIGH)

{

如果 (digitalRead(BUTTONUP)==LOW)

{

模拟写入(GLED,PWMG=PWMG-10);

EEPROM.write(GLED, PWMG);

延迟(300);

}

如果 (digitalRead(BUTTONDOWN)==LOW)

{

模拟写入(GLED,PWMG=PWMG+10);

EEPROM.write(GLED, PWMG);

延迟(300);

}

}

}

如果(颜色==RLED)

{

while (digitalRead(BUTTONENT)==HIGH)

{

如果 (digitalRead(BUTTONUP)==LOW)

{

模拟写入(RLED,PWMR=PWMR-10);

EEPROM.write(RLED, PWMR);

延迟(300);

}

如果 (digitalRead(BUTTONDOWN)==LOW)

{

模拟写入(RLED,PWMR=PWMR+10);

EEPROM.write(RLED, PWMR);

延迟(300);

}

}

}

数字写入(BLED,高);

数字写入(GLED,高);

数字写入(RLED,高);

延迟(500);

模拟写入(BLED,PWMB);

模拟写入(RLED,PWMR);

模拟写入(GLED,PWMG);

返回;

}

void loop() // 循环函数永远反复运行

{

如果 (digitalRead(BUTTONUP)==LOW)

{

数字写入(BLED,低);

数字写入(GLED,高);

数字写入(RLED,高);

延迟(1000);

调整(流血);

}

if (digitalRead (BUTTONENT)==LOW) //кнопка 输入 (средняя)

{

数字写入(BLED,高);

数字写入(GLED,低);

数字写入(RLED,高);

延迟(1000);

调整(GLED);

}

如果 (digitalRead (BUTTONDOWN)==LOW)

{

数字写入(BLED,高);

数字写入(GLED,高);

数字写入(RLED,低);

延迟(1000);

调整(RLED);

}

}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !