我通过蓝牙连接arduino和c#应用程序,在数字引脚2和4上连接了两个LED,当我通过蓝牙按下c#应用程序上的按钮时,命令到达arudino,“数字写入”(LED高电平)被执行,它不会停止发光。我的问题是如何改进arduino代码,使LED灯只在按钮被按下时发光,或者当我们停止用鼠标按下按钮时它停止发光。
#include <SoftwareSerial.h>
int LED=2;
int LED=4;
void setup()
{
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0)
{
int command = Serial.read();
{
if(command == 'LED1_ON')
{
digitalWrite(LED1, HIGH);
}
else if(command == 'LED2_ON')
{
digitalWrite(LED2, HIGH);
}
}
}
}发布于 2014-05-21 01:51:06
对不起,我的英语不好。我试图帮助您;)首先,我建议避免在loop()函数中声明变量。
int command = Serial.read();这是一个很好的习惯,在你的源代码一开始就声明它(其中是你的leds声明)。但问题是。我猜,你的串口连接是可用的,当你按下按钮的时候,不是吗?因此,当leds不可用时,您可以将其关闭:
if (Serial.available() > 0)
{ ....}
else { /* turn off youre leds */ }https://stackoverflow.com/questions/23755465
复制相似问题