简单arduino代码中的循环无效
我正在做一个简单的项目,通过手机控制的arduino继电器。我试图创建一个回路,使继电器在简单arduino代码中的循环无效,arduino,Arduino,我正在做一个简单的项目,通过手机控制的arduino继电器。我试图创建一个回路,使继电器在高和低之间切换,只需将1发送到引脚7。我尝试了多种变体,但都不起作用,我找不到错误。这是密码,提前谢谢` int relay = 7; int prev; //previous value int val; //actual value void setup() { pinMode(relay, OUTPUT); Serial.begin(9600); } void loop() { if(Se
高
和低
之间切换,只需将1发送到引脚7。我尝试了多种变体,但都不起作用,我找不到错误。这是密码,提前谢谢`
int relay = 7;
int prev; //previous value
int val; //actual value
void setup()
{
pinMode(relay, OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available()>0) //send data when recieved
{
val = Serial.read(); //read value
}
if (val == '1')
{
if (prev == '1')
{
digitalWrite(relay, LOW);
prev=val;
}
else
{
digitalWrite(relay, HIGH);
prev=val;
}
}
else if (val == '0');
{
if (prev == '0')
{
digitalWrite(relay, HIGH);
prev=val;
}
else
{
digitalWrite(relay, LOW);
prev=val;
}
}
}
当前代码尝试读取串行端口,如果有要读取的内容,则将其设置为变量val 如果它已经读取了一个值,但没有另一个值,则val仍然设置为与以前相同的值 因此,它很可能会以循环的速度开始切换高/低转换 相反,您可以将逻辑代码移动到if(Serial.available()>0)语句中,以便只在按键时调用它