hola a todos! y feliz día!
Estoy inicinándome en Ardruino y aprendiendo a base de prueba y error, pero llevo unos días atascado en un punto y necesito pedir ayuda. He intentado buscarlo por internet y por el foro, pero no encuentro nada, cosas similares pero por mas que lo intento versionar no me funciona, asi que agradezco sumamente la ayuda.
quiero controlar por bluetooth una serie de luces RGB que crean distintos efectos en una lampara impresa en 3d, por ahora funciona todo perfecto, tengo distintas opciones, encendido, colores, fade.. el problema es que cuando llega el comando 9, (es el que realiza el fade), se queda ahi por el fin de los tiempos.
He manejado todo con while, if, break, millis... y nada me funciona.
todas las trancisiones de colores se realizan con la misma función:
void fade(int led, int valor, int valorold){
if (valor > valorold){
for (int i = valorold; i <= valor; i++){
analogWrite(led, i);
delay(20);
}
}
else {
for (int i = valorold; i >= valor; i--){
analogWrite(led, i);
delay(20);
}
}
en principio quiero cambiar el delay por millis pero hasta donde he hecho no funciona nada:
void fade(int led, int valor, int valorold){
unsigned long tiempo;
if (valor > valorold){
for (int i = valorold; i <= valor; i++){
tiempo = millis();
if (millis() - tiempo <= 20){
analogWrite(led, i);
}
}
}
else {
for (int i = valorold; i >= valor; i--){
tiempo = millis();
if (millis() - tiempo <= 20){
analogWrite(led, i);
}
}
}
}
el primero funciona bien, pero me bloquea ardruino hasta que termine, y en el fade tengo que cuando acabe empiece de nuevo, así que ardruino nunca vuelve a responder, y el segundo va a su bola totalmente.
Muchas gracias y disculpen a los mas avanzados... jeje, un saludo!!