为什么我的Arduino Uno digitalRead()不能来自其他I / O引脚的digitalWrite()?

时间:2017-09-03 22:52:03

标签: arduino microcontroller electronics

我想做一些非常基本的事情,如下所示:

#define READ_PIN    7
#define WRITE_PIN   8

void setup() {
  pinMode(READ_PIN, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(WRITE_PIN, LOW);
  Serial.println(digitalRead(READ_PIN));
}

我将WRITE_PIN和READ_PIN桥接在一起以读取引脚输出的内容。

输入始终按INPUT_PULLUP的预期读取“1”,但我希望它读为“0”。无论我使用哪种引脚,我都会使用analogRead()analogWrite()获得相同的结果。

有人知道为什么这似乎无法实现吗?

1 个答案:

答案 0 :(得分:1)

(从评论中移出)

Arduino上的引脚模式默认设置为INPUT 1 ;要使用WRITE_PIN作为输出,您必须在setup

中明确地设置它
pinMode(WRITE_PIN, OUTPUT);
  1. 值得一提的是,即使记录了默认值,为了清楚起见,始终明确设置设置中所有引脚的模式,甚至输入引脚仍然是一种好习惯。