我有一个继电器,我想用它打开灯,我有两个触摸感应器,但是使用这个代码,我只能用1打开它,我如何使它工作呢?第三种是开关,但它的工作方式应该是一样的。我试过了,它用的是不同的代码。但是那个代码是用来伺服的而不是继电器的。
int touchPin = 4;
int touchPin2 = 6; // Arduino pin connected to touch sensor's pin
int touchPin3 = 7 ;
int relayPin = 9;
int val = 0;
int lightON = 0;
int touched = 0;
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT);
pinMode(touchPin2, INPUT);
pinMode(touchPin3, INPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
val = digitalRead(touchPin);
val = digitalRead(touchPin2);
val = digitalRead(touchPin3);
if(val == HIGH && lightON == LOW){
touched = 1-touched;
delay(100);
}
lightON = val;
if(touched == HIGH){
Serial.println("Light ON");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Light OFF");
digitalWrite(relayPin, HIGH);
}
delay(100);
}发布于 2021-11-30 14:39:31
你需要同时处理所有三个数字输入。在你的代码中
val = digitalRead(touchPin);
val = digitalRead(touchPin2);
val = digitalRead(touchPin3);您正在覆盖前两个读取值到最后一个。你应该把它们结合起来,或者把这三者分开处理。将三个读取合并为一个值,如果任何都很高,则该值将很高:
val = digitalRead(touchPin) || digitalRead(touchPin2) || digitalRead(touchPin3);另外:
int val = digitalRead(touchPin);
int val2 = digitalRead(touchPin2);
int val3 = digitalRead(touchPin3);
if ((val == HIGH || val2 == HIGH || val3 == HIGH) && lightON == LOW) {https://stackoverflow.com/questions/70170732
复制相似问题