|
|
我使用Arduino 我想用4号io口控制一个led亮或者灭并且想读取当前这个io的值,所以我先调用 pinMode(led, OUTPUT);设置为输出模式,然后在Loop 里面监听串口输入 当接受到 ON 的时候调用 digitalWrite(led, HIGI); 再通过 pinMode(led, INPUT_PULLUP);设置为INPUT_PULLUP模式ledFlag = digitalRead(led);读取Serial.println(ledFlag);输出
出现的问题:这个ledFlag的值永远都是0
附上线路图
代码
[pre lang="arduino" line="1" file="main"]
const byte led = 4;
/*
Name: Test.ino
Created: 2016/1/8 星期五 下午 11:51:47
Author: Administrator
*/
int ledFlag = 0;
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
}
String inString = "";
/*
测试
*/
void loop()
{
while (Serial.available() > 0)
{
char inChar = Serial.read();
inString += (char)inChar;
//延时函数用于等待输入字符完全进去接收缓冲区
delay(10);
}
// 检查是否接收到数据,如果接收到,便输出该数据
if (inString != "")
{
if (inString == "OFF")
{
//if (ledFlag == HIGH)
{
ledFlag = LOW;
pinMode(led, OUTPUT);
digitalWrite(led, ledFlag);
delay(100);
pinMode(led, INPUT_PULLUP);
ledFlag = digitalRead(led);
Serial.println(ledFlag);
}
}
else if (inString == "ON")
{
//if (ledFlag == LOW)
{
ledFlag = HIGH;
pinMode(led, OUTPUT);
digitalWrite(led, ledFlag);
delay(100);
pinMode(led, INPUT_PULLUP);
ledFlag = digitalRead(led);
Serial.println(ledFlag);
delay(100);
}
}
inString = "";
}
}[/code] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|