int button = 3; // 按键连接到引脚3
int redPin = 12; // 红色通道连接到引脚9
int greenPin = 9; // 绿色通道连接到引脚10
int bluePin = 10; // 蓝色通道连接到引脚11
int buttonState = 0;// 存储按键状态
int val=0;
void setup()
{
Serial.begin(9600); // 初始化串口通信,波特率为9600
randomSeed(analogRead(0)); // 设置随机数种子
pinMode(button, INPUT); // 设置按键引脚为输入模式
pinMode(redPin, OUTPUT); // 设置红色通道引脚为输出模式
pinMode(greenPin, OUTPUT); // 设置绿色通道引脚为输出模式
pinMode(bluePin, OUTPUT); // 设置蓝色通道引脚为输出模式
}
void Color(int r,int g,int b)
{
analogWrite(redPin,r); // 设置红色通道的亮度
analogWrite(greenPin,g); // 设置绿色通道的亮度
analogWrite(bluePin,b); // 设置蓝色通道的亮度
}
void loop()
{
int r = random(0, 256); // 生成一个0到255之间的随机数作为红色通道的亮度值
int g = random(0, 256); // 生成一个0到255之间的随机数作为绿色通道的亮度值
int b = random(0, 256); // 生成一个0到255之间的随机数作为蓝色通道的亮度值
if(digitalRead(button)==LOW)//检测按钮是否被按下
{
delay(20);//延时0.02秒
if(digitalRead(button)==LOW)//再次检测按钮是否被按下
{
buttonState=buttonState+1;//当按钮按下时,使LEDRGB的颜色能发生变化
while(digitalRead(button)==LOW); // 等待按钮释放
if(buttonState=HIGH) // 如果按钮状态为高电平
{
Color(r,g,b); // 设置LED灯的颜色
Serial.println(String(++val)+"-RGB:" + String(r) + "," + String(g) + "," + String(b) + ""); // 通过串口输出当前的颜色值和计数
}
}
}
}