我有两个输入引脚,希望根据引脚的状态打印一个特定的数字(HIGH/LOW(。
我为此编写了以下程序,但它只在串行端口中打印错误。
以下是代码
int L1 = 2;
int L2 = 3;
void setup() {
// put your setup code here, to run once:
pinMode(L1, INPUT);
pinMode(L2, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (L1 == HIGH && L2 == HIGH){
Serial.println(10);
}
else if (L1 == HIGH && L2 == LOW) {
Serial.println(20);
}
else if (L1 == LOW && L2 == LOW) {
Serial.println(30);
}
else if (L1 == LOW && L2 == HIGH) {
Serial.println(40);
}
else {
Serial.println("error");
}
delay(2000);
}
您不应该使用L2==LOW/HIGH,L2总是等于3,正如您在开头定义的那样。
相反,您应该使用digitalRead(L2(
例如:
void loop() {
if (digitalRead(L1)==HIGH && digitalRead(L2)==HIGH) {
Serial.println(10);
}
else if (digitalRead(L1)==HIGH && digitalRead(L2)==LOW) {
Serial.println(20);
}
else if (digitalRead(L1)==LOW && digitalRead(L2)==LOW) {
Serial.println(30);
}
else if (digitalRead(L1)==LOW && digitalRead(L2)==HIGH) {
Serial.println(40);
}
else {
Serial.println("error");
}
delay(2000);
}