【发布时间】:2018-10-27 11:04:03
【问题描述】:
我在 Arduino 上制作策划游戏时遇到问题。 我有 4 个 RGB LED,每个 LED 都有引脚名称(red1、green1、blue1、red2、green2、blue2 等)
现在我的问题是当我输入 4 种颜色来与 Arduino 在游戏开始时选择的颜色进行比较时。代码太重复了,因为我还在学习 Arduino,所以我想知道是否有解决方案。
这是我的代码的一部分,它为具有所选颜色的 LED 分配颜色(颜色代码 1 = 绿色,2 = 红色等)
void Convertmycolor()
{
if (colorpicker1 == 1)
{
red1 = 0;
green1 = 255;
blue1 = 255;
}
else if (colorpicker1 == 2)
{
red1 = 0;
green1 = 0;
blue1 = 255;
}
else if (colorpicker1 == 3)
{
red1 = 255;
green1 = 255;
blue1 = 0;
}
else if (colorpicker1 == 4)
{
red1 = 255;
green1 = 0;
blue1 = 0;
}
else if (colorpicker1 == 5)
{
red1 = 255;
green1 = 255;
blue1 = 255;
}
if (colorpicker2 == 1)
{
red2 = 0;
green2 = 255;
blue2 = 255;
}
else if (colorpicker2 == 2)
{
red2 = 0;
green2 = 0;
blue2 = 255;
}
else if (colorpicker2 == 3)
{
red2 = 255;
green2 = 255;
blue2 = 0;
}
else if (colorpicker2 == 4)
{
red2 = 255;
green2 = 0;
blue2 = 0;
}
else if (colorpicker2 == 5)
{
red2 = 255;
green2 = 255;
blue2 = 255;
}
if (colorpicker3 == 1)
{
red3 = 0;
green3 = 255;
blue3 = 255;
}
else if (colorpicker3 == 2)
{
red3 = 0;
green3 = 0;
blue3 = 255;
}
else if (colorpicker3 == 3)
{
red3 = 255;
green3 = 255;
blue3 = 0;
}
else if (colorpicker3 == 4)
{
red3 = 255;
green3 = 0;
blue3 = 0;
}
else if (colorpicker3 == 5)
{
red3 = 255;
green3 = 255;
blue3 = 255;
}
if (colorpicker4 == 1)
{
red4 = 0;
green4 = 255;
blue4 = 255;
}
else if (colorpicker4 == 2)
{
red4 = 0;
green4 = 0;
blue4 = 255;
}
else if (colorpicker4 == 3)
{
red4 = 255;
green4 = 255;
blue4 = 0;
}
else if (colorpicker4 == 4)
{
red4 = 255;
green4 = 0;
blue4 = 0;
}
else if (colorpicker4 == 5)
{
red4 = 255;
green4 = 255;
blue4 = 255;
}
}
您可以看到它非常重复,我希望它更短。我尝试使用谷歌搜索,但在这种情况下没有看到任何可以帮助我的东西(或者我不擅长搜索)
希望你能帮我解决这个问题。 谢谢。
【问题讨论】:
标签: arduino serial-port rgb