-1
你好,我刚刚开始编程C + +与我的Arduino Uno。 现在我想制作一些活色彩。我一步一步地做这件事,现在我的最后一个问题是,当我有下一个案子时,灯不熄灭。C++开关的情况下,“默认”不起作用
第一部分并不重要(我知道它可以更好)。 但对我来说问题在于最后一部分:default
。
我希望有人会向我解释我做错了什么,所以每一个灯后都会熄灭,我可以改变每个灯的亮度,也许还有其他建议。
对不起,我的英语不好。
代码
#define BUTTON_PIN2 10
const int RGB_LED_BLUE = 6;
const int RGB_LED_GREEN = 5;
const int RGB_LED_RED = 3;
const int POTPIN = A0;
int color = 0;
int x = 0;
int potmeter = 0;
boolean button_state = LOW;
boolean current_button_state = LOW;
boolean previous_button_state = LOW;
void setup()
{
Serial.begin(9600);
pinMode(BUTTON_PIN2, INPUT);
pinMode(RGB_LED_BLUE,OUTPUT);
pinMode(RGB_LED_GREEN,OUTPUT);
pinMode(RGB_LED_RED,OUTPUT);
}
void loop()
{
current_button_state = digitalRead (BUTTON_PIN2);
if ((current_button_state == HIGH)&&
(current_button_state != previous_button_state))
color = x=x+1;
switch(color)
{
case 1:
{
potmeter = analogRead(POTPIN);
potmeter = potmeter /4;
analogWrite (RGB_LED_RED, potmeter);
}
break;
case 2:
{
potmeter = analogRead(POTPIN);
potmeter = potmeter /4;
analogWrite (RGB_LED_GREEN, potmeter);
}
break;
case 3:
{
potmeter = analogRead(POTPIN);
potmeter = potmeter /4;
analogWrite (RGB_LED_BLUE, potmeter);
x=0;
}
break;
default:
{
analogWrite (RGB_LED_RED, LOW);
analogWrite (RGB_LED_GREEN, LOW);
analogWrite (RGB_LED_BLUE, LOW);
}
}
previous_button_state = current_button_state;
delay(10);
}
问题几乎可以肯定地在默认执行的代码中(即在你的'analogueWrite()'函数中)。由于这是一个非标准功能,没有人能够帮助你 - 它不像人们可以通过心灵感应推断出某个未知功能应该做的事情,并识别其中的错误。 – Peter
@Peter它是一个标准的Arduino函数https://www.arduino.cc/en/Reference/AnalogWrite – Eelke
@Eelke - 标记了C++的问题后,OP引起了C++开发者的注意 - 不仅仅是那些谁了解arduino - 期待他们能够提供帮助。问题的提出方式也暗示了这一点 - 暗示问题出在语言功能的工作中('switch' /'default')。如果这是期望,OP的责任就是证明这一说法是合理的 - 即证明相信函数被正确调用以实现预期结果。否则,该问题不应该被标记为C++。 – Peter