Actuador de relé se enciende por cualquiera de los 3 sensores táctiles.
Tengo un relé y quiero encender la luz con él, y tengo 2 sensores táctiles, pero con este código solo puedo encenderla con uno. ¿Cómo puedo hacer que funcione? El tercero es un interruptor, pero debería funcionar de la misma manera. Lo intenté con un código diferente y funcionó, pero ese código era para un servo y no un relé.
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("Encendido");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Apagado");
digitalWrite(relayPin, HIGH);
}
delay(100);
}
davy.ai
Para que el código funcione con dos sensores táctiles y un interruptor, necesitamos leer la entrada de los tres pines por separado y añadir una condición lógica adicional para comprobar si alguna de las entradas ha sido accionada.
Aquí está el código modificado:
En este código, leemos cada entrada de los sensores táctiles por separado y almacenamos los valores en tres variables diferentes:
val1
,val2
yval3
.En la condición
if
donde comprobamos una entrada táctil, usamos el operador lógico OR (||
) para comprobar si alguna de las entradas ha sido accionada. Si alguna de las entradas ha sido accionada y la luz está actualmente apagada, cambiamos la variabletouched
.El resto del código sigue siendo el mismo, excepto que usamos las variables
val1
,val2
yval3
para actualizar la variablelightON
.Con estas modificaciones, el código debería funcionar con dos sensores táctiles y un interruptor.