Arduino - Combinacion de pulsador y IRremote

 
Vista:

Combinacion de pulsador y IRremote

Publicado por Jose Gudiño (1 intervención) el 09/08/2021 16:47:42
Que tal? quería ver si alguien podía darme una mano con el problema que estoy teniendo en combinar el uso de un pulsador y también un control remoto para encender un mismo led, de manera que ya sea usando una tecla del control remoto encender el led y usar el pulsador para apagar el led y viceversa.

Les dejo el código que estoy utilizando para hacerlo y el problema que estoy temiendo es que, si primero presiono el botón del control pero no hace nada pero si cuando toco el pulsador.
Cuando comento alguno de los 2 métodos que uso ya sea para capturar ya sea el pulsador o el botón del control remoto funciona bien pero al dejar los 2 métodos solo funciona el pulsador.
Desde ya muchas gracias.


CODIGO QUE UTILIZO


//Se incluye la libreria para el control remoto
#include <IRremote.h>

//se definen los botones del control remoto

#define Boton_1 0x41038C7


//se crea una variable para almacenar el dato del sensor
int SENSOR = 11;
//se crea un objeto IRrecv y se le pasa la variable SENSOR ya que con esto le avisamos que solo recibiremos info del sensor
IRrecv irrecv (SENSOR);
//se crea un objeto decode_results
decode_results codigo;


//se crean variables para almacenar los pines donde estan conectado los led y el buzzer
int ledRojo = 2;
int ledAmarillo = 3;
//se crean variables para almacenar los pines conectado a los botones
int cochera = 12;
//se crea una variable para el estado del led
int estadoCochera = LOW;



void setup() {
//se inicializa el monitor serial
Serial.begin(9600);
//se inicializa la recepcion de datos
irrecv.enableIRIn();
//se defines los pines
//pinMode (ledRojo, OUTPUT);
pinMode (ledAmarillo, OUTPUT);
//pinMode (cochera, INPUT);
}

void loop() {
pulsadoresLuz();
controlRemoto();



}

/////////////////////////////////////////////////////
/////////////////METODOS//////////////////
/////////////////////////////////////////////////////

//pulsadores
void pulsadoresLuz() {
//se crea un while para el boton
while (digitalRead(cochera) == LOW);
estadoCochera = digitalRead(ledRojo);
digitalWrite(ledRojo, !estadoCochera);
//con esta linea se avita el revote
delay(500);

}

//controlRemoto
void controlRemoto() {
//se consulta primero si se recibe un codigo
if (irrecv.decode(&codigo)) {
Serial.println(codigo.value, HEX);
//se realiza un if dentro del primer if porque ya tenemos una señal
//prende led ROJO
if (codigo.value == Boton_1) {
//con !diditalRead ponemos lo opuesto de lo que se lee
digitalWrite(ledRojo, !digitalRead(ledRojo));
}
//con esta linea hacemos que el modulo este listo nuevamente parea recibir datos
irrecv.resume();
}
delay(500);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder