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

Why can't my Arduino Uno digitalRead() the digitalWrite() from other I/O pins?

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

#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() 得到相同的结果,无论我使用哪个引脚。

有人知道为什么这似乎不可能实现吗?

(从评论中移出)

A​​rduino 上的引脚模式默认设置为INPUT1;要使用 WRITE_PIN 作为输出,您必须在 setup.

中明确设置它
pinMode(WRITE_PIN, OUTPUT);

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