Hola a Tod@s,
Agradeceré ayuda, necesito quitarme de encima el delay por un sistema que no pare la ejecución del código, pero no lo consigo,
El proyecto se basa en Arduino Nano para encender una tira led de manera cíclica, Rojo, Verde, Azul durante un tiempo que más adelante modificaré con un potenciómetro.
Para activar cada color tengo definida una matriz (led[]) en la que se indican los pins que usa cada canal ) Rojo, 6 Azul y 3 Verde
No sé cómo hacer funcionar el bucle que enciende cada led substituyendo la función delay por la que he creado con el nombre de mdelay, a la que le paso como parámetro el tiempo que deseo permanezca encendido uno de los colores de la tira led.
En el código ara = ahora;
unsigned long ara = 0; // lectura temps ara
int led [3] = {9, 6, 3} ;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
int mdelay(int tp) // torna 1 quan es compleix la condició, zero si no és compeix
{
if (millis() > ara + tp) {
ara = millis();
return 1;}
else { return 0; }
}
int ordreRBG(int tp) // Aqui hohem de fer a ma, no śé com fer-ho d'altra manera
{
for (int i = 0; i < 3; i++)
{
digitalWrite(led[i], HIGH); // encen
mdelay(2000); // espera
digitalWrite(led[i], LOW); // apaga
}
}
void loop() {
ordreRBG(3000);
}
Agradecido de antemano
JoanBa57