为什么我的 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()
得到相同的结果,无论我使用哪个引脚。
有人知道为什么这似乎不可能实现吗?
(从评论中移出)
Arduino 上的引脚模式默认设置为INPUT
1;要使用 WRITE_PIN
作为输出,您必须在 setup
.
中明确设置它
pinMode(WRITE_PIN, OUTPUT);
- 值得一提的是,即使记录了默认值,为了清楚起见,始终在设置中明确设置所有引脚的模式(即使是输入引脚)仍然是一个好习惯。
我想做一些非常基本的事情,如下所示:
#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()
得到相同的结果,无论我使用哪个引脚。
有人知道为什么这似乎不可能实现吗?
(从评论中移出)
Arduino 上的引脚模式默认设置为INPUT
1;要使用 WRITE_PIN
作为输出,您必须在 setup
.
pinMode(WRITE_PIN, OUTPUT);
- 值得一提的是,即使记录了默认值,为了清楚起见,始终在设置中明确设置所有引脚的模式(即使是输入引脚)仍然是一个好习惯。