Paso 4: Añadir el código de Arduino
/*
* Biblioteca iRremote - Copyright 2009 Ken Shirriff
* creado por Rui Santos, http://randomnerdtutorials.wordpress.com
* Control de LED con control remoto
* 2013
*/
#include < IRremote.h >
int IR_Recv = 3; Receptor IR Pin 3
int g_ledPin = 5; perno de LED verde 5
int y_ledPin = 6; pin de LED amarillo 6
int r_ledPin = 9; pin de LED rojo 9
int b_ledPin = 10; pin de LED azul 10
int ledPins [] = {5, 6, 9, 10}; array con todos los pines de los LED
int ledStates [] = {0, 0, 0, 0}; Esto significa Estados de los LED en un principio es 0 = baja
int i = 0; Índice de LED para los arreglos de
Irrecv(IR_Recv) de IRrecv;
resultados de la decode_results;
variables para hacer el parpadeo del LED cuando selecciona
int ledState = bajo; ledState a apagar el LED
previousMillis largo = 0; almacena la última vez actualizó a LED
largo intervalo de tiempo = 1000; intervalo en el que a parpadear (milisegundos)
void setup() {}
Serial.Begin(9600); comienza comunicación serial
irrecv.enableIRIn(); El receptor se inicia
pinMode (g_ledPin, salida); pone el pin digital como salida
pinMode (y_ledPin, salida); pone el pin digital como salida
pinMode (r_ledPin, salida); pone el pin digital como salida
pinMode (b_ledPin, salida); pone el pin digital como salida
}
void loop() {}
Decodifica la entrada de infrarrojos
Si (irrecv.decode (y resultados)) {}
decCode int largo = results.value;
Serial.println(decCode);
caso de interruptor con el botón de mando seleccionado
interruptor (results.value) {}
57936 del caso: //when presiona el botón de avance
Este if/else instrucción asegura que LED está encendido o apagado antes de pasar a la siguiente LED
if(ledStates[i]==0)
digitalWrite (ledPins [i], LOW);
otra cosa
digitalWrite (ledPins [i], HIGH);
Serial.println ("continuación LED");
se cerciora de que cuando llegamos al último LED va al primer LED nuevo
Si (i > = 3)
i =-1;
i += 1;
rotura;
57928 del caso: //when presiona el botón de reverso
Este if/else instrucción asegura que LED está encendido o apagado antes de pasar a la anterior LED
if(ledStates[i]==0)
digitalWrite (ledPins [i], LOW);
otra cosa
digitalWrite (ledPins [i], HIGH);
Serial.println ("LED anterior");
se cerciora de que cuando alcancemos el primer LED va al último LED
Si (i < = 0)
i = 4;
i-= 1;
rotura;
57932 del caso: //when el botón de Mute
if(ledStates[i]==0) {//if el LED está apagado, se encenderá
Serial.println ("se enciende el LED seleccionado");
digitalWrite (ledPins [i], HIGH); el LED se pone en
ledStates [i] = 1; actualiza el estado del LED
}
Else {}
Serial.println ("se apaga el LED seleccionado"); otra cosa: el LED está encendido, se apaga
digitalWrite (ledPins [i], LOW); fija el LED apagado
ledStates [i] = 0; actualiza el estado del LED
}
rotura;
57920 del caso: //when presiona el botón de encendido
Serial.println ("da vuelta apagado todas las luces LED");
digitalWrite (g_ledPin, bajo); fija el LED verde apagado
ledStates [0] = 0; actualiza el estado del LED
digitalWrite (y_ledPin, bajo); sale la luz amarilla
ledStates [1] = 0; actualiza el estado del LED
digitalWrite (r_ledPin, bajo); sale el LED rojo
ledStates [2] = 0; actualiza el estado del LED
digitalWrite (b_ledPin, bajo); sale el LED azul
ledStates [3] = 0; actualiza el estado del LED
rotura;
por defecto:
Serial.println("Waiting");
}
irrecv.resume(); Recibe el siguiente valor del botón que pulse
}
Esta declaración hace el parpadeo del LED si se selecciona y se apaga
{if(ledStates[i]==0)}
unsigned currentMillis largo = millis();
Si (currentMillis - previousMillis > intervalo) {}
guardar la última vez que titilaba el LED
previousMillis = currentMillis;
Si el LED está apagado gire sobre y viceversa:
Si (ledState == LOW)
ledState = alto;
otra cosa
ledState = bajo;
Set el LED con la ledState de la variable:
digitalWrite (ledPins [i], ledState)
}
}
}