Hola amigos
Tengo poco de estar usando arduino y realmente me sorprendente todas las posibilades que existen para realizar una infinidad de proyectos.
He realizado un proyecto que viene siendo un juego de luces que incluye 11 leds con 2 diferentes efectos y agregare mas, le hice algunas mejoras y ahora lo controlo a distancia con un control remoto IR.
Ahora lo que deseo agregar en un led al pin 11 con pulso PWM que se accione cuando a la placa arduino la alimente a su fuente de alimentación y que al activar los botones que configure en el codigo a exepcion de POWER y OK entonces que el led con efecto PWM se apague pero cuando los 11 leds esten apagados el led con pulso PWM se vuelva a encender.
Como veran en el codigo solo llegue a definir el pin 11 para el led PWM que deseo agregar.
Espero haya podido explicar bien lo que quiero agregar al codigo.
¿alguien me puede ayudar sobre que cambios o que debo agregar al código?
De ante mano les agradesco su ayuda.
Aqui les comparto el codigo.
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
// CODIGO PARA NEOPIXEL
#include <Adafruit_NeoPixel.h>
#define PIN1 12 //Conectar pin DIN de led WS2812B
#define NUMPIXELS 1 //Cantidad de leds ws2812b conectados
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN1, NEO_GRB + NEO_KHZ800);
int i = 0;
//CODIGO PARA NEOPIXEL
int led1 = 3;
int led2 = 4;
int led3 = 5;
int led4 = 6;
int led5 = 7;
///LED DE COMPLEMENTO DE SECUENCIA
int led6 = 13; //LED INTERNO
int LAN = A0;
int NAV_G = A1;
int NAV_R = A2;
int LOG_W1 = A3;
int LOG_W2 = A4;
int NAV_W = A5;
int LED_PWM =11;
int estado=0;
void setup()
{
//CODIGO PARA NEOPIXEL
pixels.begin(); // This initializes the NeoPixel library.
pixels.setBrightness(100); //Ajuste de brillo de LED Neopixel 0 = MIN 255 = MAX
pixels.show();
//CODIGO PARA NEOPIXEL
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
///LED INDICADOR DE EFECTO ACTIVO
pinMode(led6, OUTPUT); //Led SCK de Arduino
pinMode(LAN, OUTPUT);
pinMode(NAV_G, OUTPUT);
pinMode(NAV_R, OUTPUT);
pinMode(LOG_W1, OUTPUT);
pinMode(LOG_W2, OUTPUT);
pinMode(NAV_W, OUTPUT);
}
void case1(void)
{
//CODIGO PARA NEOPIXEL
pixels.setPixelColor(0, pixels.Color(125, 255, 0)); //MODO 1 LIME
pixels.show();
//CODIGO PARA NEOPIXEL
//MODO 1 (M1)
digitalWrite(led5, 1);
delay(60);
digitalWrite(led5, 0);
delay(60);
digitalWrite(led5, 1);
delay(60);
digitalWrite(led5, 0);
delay(60);
digitalWrite(led5, 1);
delay(60);
digitalWrite(led5, 0);
digitalWrite(led3, 1);
digitalWrite(led4, 1);
delay(60);
digitalWrite(led3, 0);
digitalWrite(led4, 0);
delay(60);
digitalWrite(led3, 1);
digitalWrite(led4, 1);
delay(60);
digitalWrite(led3, 0);
digitalWrite(led4, 0);
delay(100);
digitalWrite(led1, 1);
digitalWrite(led2, 1);
delay(50);
digitalWrite(led1, 0);
digitalWrite(led2, 0);
delay(200);
digitalWrite(led1, 1);
digitalWrite(led2, 1);
delay(50);
digitalWrite(led1, 0);
digitalWrite(led2, 0);
digitalWrite(led6, 1);
delay(100);
digitalWrite(led6, 0);
delay(100);
digitalWrite(led6, 1);
delay(100);
digitalWrite(led6, 0);
delay(100);
}
void case2(void)
{
//CODIGO PARA NEOPIXEL
pixels.setPixelColor(0, pixels.Color(0, 255, 0)); //MODO 2 GREEN
pixels.show();
//CODIGO PARA NEOPIXEL
//MODO 2 (M2)
digitalWrite(led3, 1);
digitalWrite(led4, 1);
digitalWrite(led5, 1);
delay(70);
digitalWrite(led3, 0);
digitalWrite(led4, 0);
digitalWrite(led5, 0);
delay(300);
digitalWrite(led1, 1);
digitalWrite(led2, 1);
digitalWrite(led6,1);
delay(500);
digitalWrite(led1, 0);
digitalWrite(led2, 0);
digitalWrite(led6,0);
}
void case3(void)
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
//CODIGO PARA NEOPIXEL
pixels.setPixelColor(0, pixels.Color(0, 0, 0)); //OFF
pixels.show();
//CODIGO PARA NEOPIXEL
}
void loop()
{
if (irrecv.decode(&results))
{
switch(results.value)
{
case 0xE246AFCA: Serial.println("Tecla: UP LED LAN");
digitalWrite(LAN, !digitalRead(LAN));
delay(500);
break;
case 0x4D43596A: Serial.println("Tecla: LEFT LEDS NAV ON");
digitalWrite(NAV_G, !digitalRead(NAV_G));
digitalWrite(NAV_R, !digitalRead(NAV_R));
digitalWrite(NAV_W, !digitalRead(NAV_W));
delay(500);
break;
case 0xB520CEC: Serial.println("Tecla: OK LEDS LAN,NAV Y LOG OFF");
digitalWrite(LAN, LOW);
digitalWrite(NAV_G, LOW);
digitalWrite(NAV_R, LOW);
digitalWrite(LOG_W1, LOW);
digitalWrite(LOG_W2, LOW);
digitalWrite(NAV_W, LOW);
delay(500);
break;
case 0xBB0EDD22: Serial.println("Tecla: RIGHT LEDS LOGO");
digitalWrite(LOG_W1, !digitalRead(LOG_W1));
digitalWrite(LOG_W2, !digitalRead(LOG_W2));
delay(500);
break;
case 0x51731C91: Serial.println("Boton 1 MODO#1");
estado=1;
break;
case 0x4A1144F9: Serial.println("Boton 2 MODO#2");
estado=2;
break;
case 0x406A954D: Serial.println("Boton POWER LEDS ANT OFF");
estado=3;
break;
}
irrecv.resume(); // Receive the next value
}
switch (estado)
{
case 1:
case1();
break;
case 2:
case2();
break;
case 3:
case3();
break;
}
}