digitalRead的奇怪问题
我使用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
附上线路图
代码
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 = "";
}
} “4”号口不是PWM口,是普通的IO。在数字口号前有“~”的,才可以做PWM输出,例如:~11。 增加一个接口,读取试试。
页:
[1]