Hola buenas me gustaría que me ayudasen a añadir el siguiente programa de led rgb a el programa que tengo actualmente de leds normales que se activan con sensor infrarrojo la idea seria que un botón del mando encendiera el sensor infrarrojo intentando mantener el resto de la programación tal y como esta solo intercambiar un rgb por uno normal. Si alguien me pudiera ayudar lo agradecería ya que no tengo grandes conocimientos de programación.
Programa Rgb:
Programación a la cual añadir el rgb:
//Conectaremos el sensor infrarrojo a un pin DIGITAL del Arduino, en este caso sera el pin 2
IRrecv sensor(2); //Inicializamos el sensor infrarrojo, poniendo el pin digital 2 como parametro
decode_results lectura; //Variable que va a almacenar la lectura del control infrarrojo
//Variables para controlar el encendido/apagado de los LEDs
int encendido1, encendido2, encendido3, encendido4, encendido5,
encendido6, encendido7, encendido8, encendido9, encendido0;
void setup()
{
Serial.begin(9600); //Inicializamos el puerto serial
sensor.enableIRIn(); //Habilitamos el sensor infrarrojo para que pueda recibir lecturas
//Con un ciclo for, declaramos los pines 3 hasta el 12 como salidas
for (int i = 3; i <= 12; i++)
{
pinMode(i, OUTPUT);
}
}
void loop()
{
if (sensor.decode(&lectura)) //Si hay una lectura recibida
{
switch (lectura.value)
{
case 0xFF6897: //Corresponde al boton 1
if (encendido1 == 0)
{
digitalWrite(3, HIGH); //Si estaba apagado lo enciende
encendido1 = 1;
}
else
{
digitalWrite(3, LOW); //Si estaba encendido lo apaga
encendido1 = 0;
}
break;
case 0xFF9867: //Corresponde al boton 2
if (encendido2 == 0)
{
digitalWrite(4, HIGH); //Si estaba apagado lo enciende
encendido2 = 1;
}
else
{
digitalWrite(4, LOW); //Si estaba encendido lo apaga
encendido2 = 0;
}
break;
case 0xFFB04F: //Corresponde al boton 3
if (encendido3 == 0)
{
digitalWrite(5, HIGH); //Si estaba apagado lo enciende
encendido3 = 1;
}
else
{
digitalWrite(5, LOW); //Si estaba encendido lo apaga
encendido3 = 0;
}
break;
case 0xFF30CF: //Corresponde al boton 4
if (encendido4 == 0)
{
digitalWrite(6, HIGH); //Si estaba apagado lo enciende
encendido4 = 1;
}
else
{
digitalWrite(6, LOW); //Si estaba encendido lo apaga
encendido4 = 0;
}
break;
case 0xFF18E7: //Corresponde al boton 5
if (encendido5 == 0)
{
digitalWrite(7, HIGH); //Si estaba apagado lo enciende
encendido5 = 1;
}
else
{
digitalWrite(7, LOW); //Si estaba encendido lo apaga
encendido5 = 0;
}
break;
case 0xFF7A85: //Corresponde al boton 6
if (encendido6 == 0)
{
digitalWrite(8, HIGH); //Si estaba apagado lo enciende
encendido6 = 1;
}
else
{
digitalWrite(8, LOW); //Si estaba encendido lo apaga
encendido6 = 0;
}
break;
case 0xFF10EF: //Corresponde al boton 7
if (encendido7 == 0)
{
digitalWrite(9, HIGH); //Si estaba apagado lo enciende
encendido7 = 1;
}
else
{
digitalWrite(9, LOW); //Si estaba encendido lo apaga
encendido7 = 0;
}
break;
case 0xFF38C7: //Corresponde al boton 8
if (encendido8 == 0)
{
digitalWrite(10, HIGH); //Si estaba apagado lo enciende
encendido8 = 1;
}
else
{
digitalWrite(10, LOW); //Si estaba encendido lo apaga
encendido8 = 0;
}
break;
case 0xFF5AA5: //Corresponde al boton 9
if (encendido9 == 0)
{
digitalWrite(11, HIGH); //Si estaba apagado lo enciende
encendido9 = 1;
}
else
{
digitalWrite(11, LOW); //Si estaba encendido lo apaga
encendido9 = 0;
}
break;
case 0xFF4AB5: //Corresponde al boton 0
if (encendido0 == 0)
{
digitalWrite(12, HIGH); //Si estaba apagado lo enciende
encendido0 = 1;
}
else
{
digitalWrite(12, LOW); //Si estaba encendido lo apaga
encendido0 = 0;
}
break;
case 0xFF42BD: //Corresponde al boton * (Asterisco)
for (int i = 3; i <= 12; i++)
{
digitalWrite(i, HIGH); //Enciende todos los LEDs
encendido0 = 1;
encendido1 = 1;
encendido2 = 1;
encendido3 = 1;
encendido4 = 1;
encendido5 = 1;
encendido6 = 1;
encendido7 = 1;
encendido8 = 1;
encendido9 = 1;
}
break;
case 0xFF52AD: //Corresponde al boton # (Numeral)
for (int i = 3; i <= 12; i++)
{
digitalWrite(i, LOW); //Apaga todos los LEDs
encendido0 = 0;
encendido1 = 0;
encendido2 = 0;
encendido3 = 0;
encendido4 = 0;
encendido5 = 0;
encendido6 = 0;
encendido7 = 0;
encendido8 = 0;
encendido9 = 0;
}
break;
}
sensor.resume(); //Prepara el sensor infrarrojos para nuevas lecturas
}
}