Hola buenas a todos, estoy creando un codigo para un proyecto led con los neopixel y tengo un problema que igualemente me podeis ayudar.
Por ahora todo va bastante vez controlo 3 tiras a la vez y todo iba perfecto hasta ahora . El el codigo que tengo hecho los led se van encendiendo de un lado al otro y en diferentes colores, mi problema es que cuando llega al final osea el color verde este bucle se repite y yo no deseo esto, lo que ando buscando es que cuando llegue al final (para mi color verde)de pare y queden todos encendidos en verde muchas gracias a todos por adelantado .
#include <Adafruit_NeoPixel.h> //Libreria que usamos
#ifdef Arduino
#include "esp32_digital_led_lib.h"
#else
#include "Arduino.h"
#endif
//Pin donde esta conectada la tira de led
#define L1 26
#define L2 24
#define L3 16
//Pines de entrada de señal de los botones
#define UP 6
#define DOWN 7
#define LEFT 9
#define RIGHT 8
#define START 12
#define HOME 11
#define SELECT 10
#define B_1K 6
#define B_2K 7
#define B_3K 8
#define B_4K 9
#define B_1P 2
#define B_2P 3
#define B_3P 4
#define B_4P 5
//Descripcion de las lineas a iluminar y sus caracteristicas
Adafruit_NeoPixel BA = Adafruit_NeoPixel(6, 26, NEO_GRB + NEO_KHZ800); //Configuracion para linea B.auxiliares
Adafruit_NeoPixel BP = Adafruit_NeoPixel(16, 21, NEO_GRB + NEO_KHZ800); //Configuracion para linea B.Principales
Adafruit_NeoPixel JH = Adafruit_NeoPixel(4, 16, NEO_GRB + NEO_KHZ800); //Configuracion para linea Joystick o Hitbox(Para hitbox añadir 4 pixel más)
//Número de Leds o pixel de la tira led que queremos controlar
//Pin digital del Arduino al que esta conectado la cadena
//Es el tipo de cadena si es RGBW o RGB se escribe GRBW o GRB la libreria es así
void setup() {
BA.begin();
BA.show();
BP.begin();
BP.show();
JH.begin();
JH.show();
Serial.begin(100); //Tiempo en milisegundos
// Modo salida de los pines LED
pinMode(24 , OUTPUT); //Salida botones principales
pinMode(21 , OUTPUT); //Salida botones principales
pinMode(16 , OUTPUT); //Salida botones principales
//Salida de los Pines
pinMode(UP, INPUT);
pinMode(DOWN, INPUT);
pinMode(LEFT, INPUT);
pinMode(RIGHT, INPUT);
pinMode(START, INPUT);
pinMode(HOME, INPUT);
pinMode(SELECT, INPUT);
pinMode(B_1K, INPUT);
pinMode(B_2K, INPUT);
pinMode(B_3K, INPUT);
pinMode(B_4K, INPUT);
pinMode(B_1P, INPUT);
pinMode(B_2P, INPUT);
pinMode(B_3P, INPUT);
pinMode(B_4P, INPUT);
//Primer Efecto Todos los LED encendidos en el color elegido en modo linea
//Tira BOTONES AUXILIAR
BA.setBrightness(150); //Intensidad linea auxiliar ( 0/255 MAX)
for(int i = 0; i < 6; i++){
BA.setPixelColor(i, 0, 0, 255); //inicia en azul
BA.show();
delay(500); //Velocidad de transicion
BA.setPixelColor(i, 0, 0, 0); //apaga el led anterior
BA.show();
}
for(int i = 5; i >= 0; i--){
BA.setPixelColor(i, 255, 0, 0, 0); //vuelta en rojo
BA.show();
delay(500);}
for(int i = 5; i >= 0; i--){
BA.setPixelColor(i, 0, 255, 0); //Termina encendido en Verde
BA.show();
}
//Tira BOTONES PRINCIPALES
BP.setBrightness(220); //Intensidad linea auxiliar ( 0/255 MAX)
for(int i = 0; i < 16; i++){
BP.setPixelColor(i,255, 255, 255); //inicia en azul
BP.show();
delay(250); //Velocidad de transicion
BP.setPixelColor(i, 0, 0, 0); //apaga el led anterior
BP.show();
}
for(int i = 15; i >= 0; i--){
BP.setPixelColor(i, 0, 255, 251 ); //vuelta en rojo
BP.show();
delay(150);}
for(int i = 15; i >= 0; i--){
BP.setPixelColor(i, 0, 23, 255 ); //Termina encendido en Verde
BP.show();
}
// Tira JOYSTICK
JH.setBrightness(150); //Intensidad linea auxiliar ( 0/255 MAX)
for(int i = 0; i < 4; i++){
JH.setPixelColor(i, 0, 0, 255); //inicia en azul
JH.show();
delay(500); //Velocidad de transicion
JH.setPixelColor(i, 0, 0, 0); //apaga el led anterior
JH.show();
}
for(int i = 3; i >= 0; i--){
JH.setPixelColor(i, 255, 0, 0, 0); //vuelta en rojo
JH.show();
delay(500);
JH.setPixelColor(i, 0, 255, 0); } //Termina encendido en Verde
JH.show();
}
void loop()
{
//Definicion de los pin iniciados en apagado de los botones
digitalWrite(UP, HIGH);
digitalWrite(DOWN, HIGH);
digitalWrite(LEFT, HIGH);
digitalWrite(RIGHT, HIGH);
digitalWrite(START, HIGH);
digitalWrite(HOME, HIGH);
digitalWrite(SELECT, HIGH);
digitalWrite(B_1K, HIGH);
digitalWrite(B_2K, HIGH);
digitalWrite(B_3K, HIGH);
digitalWrite(B_4K, HIGH);
digitalWrite(B_1P, HIGH);
digitalWrite(B_2P, HIGH);
digitalWrite(B_3P, HIGH);
digitalWrite(B_4P, HIGH);
delay(100);
//Segunda Tarea al pulsar el boton
//1K
if(digitalRead(6)==1){
BP.setPixelColor(6, 255, 0, 255) ; // Color K1 1ºPixel.
BP.setPixelColor(7, 255, 0, 255) ; // Color K1 1ºPixel.
delay(50);
}
//2K
if(digitalRead(7)==1){
BP.setPixelColor(4, 255, 0, 255) ; // Color K2 1ºPixel.
BP.setPixelColor(5, 255, 0, 255) ; // Color K2 1ºPixel.
delay(50);
}
//3K
if(digitalRead(8)==1){
BP.setPixelColor(2, 255, 0, 255) ; // Color K3 1ºPixel.
BP.setPixelColor(3, 255, 0, 255) ; // Color K3 1ºPixel.
delay(50);
}
//4K
if(digitalRead(9)==1){
BP.setPixelColor(0, 255, 0, 255) ; // Color K4 1ºPixel.
BP.setPixelColor(1, 255, 0, 255) ; // Color K4 1ºPixel.
delay(50);
}
//1P
if(digitalRead(2)==1){
BP.setPixelColor(14, 255, 0, 255) ; // Color P1 1ºPixel.
BP.setPixelColor(15, 255, 0, 255) ; // Color P1 1ºPixel.
delay(50);
}
//2P
if(digitalRead(3)==1){
BP.setPixelColor(12, 255, 0, 255) ; // Color P2 1ºPixel.
BP.setPixelColor(13, 255, 0, 255) ; // Color P2 1ºPixel.
delay(50);
}
//3P
if(digitalRead(4)==1){
BP.setPixelColor(10, 255, 0, 255) ; // Color P3 1ºPixel.
BP.setPixelColor(11, 255, 0, 255) ; // Color P3 1ºPixel.
delay(50);
}
//4P
if(digitalRead(5)==1){
BP.setPixelColor(8, 255, 0, 255) ; // Color P4 1ºPixel.
BP.setPixelColor(9, 255, 0, 255) ; // Color P4 1ºPixel.
delay(50);
}
BP.show(); // Esto envía el color de cada píxel al hardware.
}