此代码错误 - 函数参数太少 'void digitalWrite(uint8_t, uint8_t)'
This code error - too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
您好,我是编码新手并编写了代码,但出现以下错误:
函数参数太少 'void digitalWrite(uint8_t, uint8_t)'。 是我做错了吗?
#include <Servo.h>
Servo Servo1;
Servo Servo2;
void setup() {
Servo2.attach(9);
Servo1.attach(10);
pinMode(5, INPUT); //IR 1
pinMode(4, INPUT); //IR 2
pinMode(6, OUTPUT); //Standby LED#1
pinMode(7, OUTPUT); //Standby LED#2
}
void loop() {
if (digitalWrite(4) == HIGH) {
Servo1.write(60);
delay(1000);
} else {
digitalWrite(6, HIGH);
}
}
void loop() {
if (digitalWrite(5) == HIGH) {
Servo2.write(60);
delay(1000);
} else {
digitalWrite(7, HIGH);
}
}
digitalWrite 参数需要要写入的引脚和要设置引脚的值。你的发言,
if (digitalWrite(4) == HIGH)
应该是
if (digitalRead(4) == HIGH)
从 GPIO 读取数据时,您似乎应该使用 digitalRead
而不是 digitalWrite
。有关详细信息,请参阅 https://arduino.stackexchange.com/q/35965
您的代码有几个问题。
让我们从最明显的开始。不能有多个循环函数。
Arduino 将调用 setup()
,然后在无限循环中一遍又一遍地调用 loop()
。
编译器应该引发重新定义循环的错误。
第二期就是你问的那个。
digitalWrite
可用于
- 设置引脚的逻辑状态,如果引脚配置为输出
- enable/disable 内部上拉电阻,如果引脚配置为 INPUT
您执行了以下操作:
if(digitalWrite(4)== HIGH)
所以你
- 您为 digitalWrite 提供了几个参数。它需要一个引脚号和一个值(高或低)
- 您在 if 语句中使用它,尽管它 return 没有任何值
由于引脚 4 配置为输入,您可能想使用 digitalRead
读取其状态。
使用 if (digitalRead(4) == HIGH)
或简单地 if(digitalRead(4))
请阅读 https://www.arduino.cc/en/Tutorial/Foundations/DigitalPins 和 Arduino 手册的其余部分
您好,我是编码新手并编写了代码,但出现以下错误: 函数参数太少 'void digitalWrite(uint8_t, uint8_t)'。 是我做错了吗?
#include <Servo.h>
Servo Servo1;
Servo Servo2;
void setup() {
Servo2.attach(9);
Servo1.attach(10);
pinMode(5, INPUT); //IR 1
pinMode(4, INPUT); //IR 2
pinMode(6, OUTPUT); //Standby LED#1
pinMode(7, OUTPUT); //Standby LED#2
}
void loop() {
if (digitalWrite(4) == HIGH) {
Servo1.write(60);
delay(1000);
} else {
digitalWrite(6, HIGH);
}
}
void loop() {
if (digitalWrite(5) == HIGH) {
Servo2.write(60);
delay(1000);
} else {
digitalWrite(7, HIGH);
}
}
digitalWrite 参数需要要写入的引脚和要设置引脚的值。你的发言,
if (digitalWrite(4) == HIGH)
应该是
if (digitalRead(4) == HIGH)
从 GPIO 读取数据时,您似乎应该使用 digitalRead
而不是 digitalWrite
。有关详细信息,请参阅 https://arduino.stackexchange.com/q/35965
您的代码有几个问题。
让我们从最明显的开始。不能有多个循环函数。
Arduino 将调用 setup()
,然后在无限循环中一遍又一遍地调用 loop()
。
编译器应该引发重新定义循环的错误。
第二期就是你问的那个。
digitalWrite
可用于
- 设置引脚的逻辑状态,如果引脚配置为输出
- enable/disable 内部上拉电阻,如果引脚配置为 INPUT
您执行了以下操作:
if(digitalWrite(4)== HIGH)
所以你
- 您为 digitalWrite 提供了几个参数。它需要一个引脚号和一个值(高或低)
- 您在 if 语句中使用它,尽管它 return 没有任何值
由于引脚 4 配置为输入,您可能想使用 digitalRead
读取其状态。
使用 if (digitalRead(4) == HIGH)
或简单地 if(digitalRead(4))
请阅读 https://www.arduino.cc/en/Tutorial/Foundations/DigitalPins 和 Arduino 手册的其余部分