Muevo aquí esta pregunta que creo que va mejor que donde estaba. Perdón.
Hola a todos.
He empezado hace muy poco con arduino con la intención de poder controlar algún día todo el acuario que hay en mi casa desde antes de nacer yo. Pero un amigo me enseñó que se podía controlar el PH, temperatura, CO2, etc y me quedé con las ganas.
Y aunque al principio me empezaron funcionando todas las prácticas sencillas que vienen en los primeros tutos, de repente se me ha complicado la vida un montón por algo que a primera vista es de lo más sencillo.
Si digo que la práctica es que un led parpadee un par de veces y que luego haga el efecto día/noche, me diréis que está tirado, verdad?.
Si si. Eso pensaba yo.
Llevo dos días dándole vueltas a este "problemón" que no tiene más de 10 líneas y hasta he preguntado en otros foros pero no se le encuentra solución.
Si me pudiérais echar una mano os lo agradecería mucho.
Como os digo la idea es que un mismo led haga un par de destellos y luego se quede en un bucle de encendido/apagado como el efecto de día/noche.
En cambio está siendo IMPOSIBLE que funcione. Hace los dos destellos continuamente. Nunca pasa al efecto día/noche. Si quito uno de los efectos, el otro funciona perfecto y al revés también, pero los dos juntos no funcionan nunca porque siempre se queda parpadeando.
Después de mil pruebas he visto que el problema parecen ser los "delay". Si los quito se ve directamente el día/noche. Es normal puesto que al no haber delay, el encendio y apagado "digital" se hace muy rápido, pero al menos se ve que el código pasa de ahí. Pero si vuelvo a meter los delay para el parpadeo, la hemos fastidiado.
muchas gracias de antemano.
int led = 11; // the pin that the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
void setup()
{
pinMode(led, OUTPUT);
}
void loop()
{
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led,LOW);
delay(500);
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 125)
{
fadeAmount = -fadeAmount ;
}
delay(30);
}
Hola a todos.
He empezado hace muy poco con arduino con la intención de poder controlar algún día todo el acuario que hay en mi casa desde antes de nacer yo. Pero un amigo me enseñó que se podía controlar el PH, temperatura, CO2, etc y me quedé con las ganas.
Y aunque al principio me empezaron funcionando todas las prácticas sencillas que vienen en los primeros tutos, de repente se me ha complicado la vida un montón por algo que a primera vista es de lo más sencillo.
Si digo que la práctica es que un led parpadee un par de veces y que luego haga el efecto día/noche, me diréis que está tirado, verdad?.
Si si. Eso pensaba yo.
Llevo dos días dándole vueltas a este "problemón" que no tiene más de 10 líneas y hasta he preguntado en otros foros pero no se le encuentra solución.
Si me pudiérais echar una mano os lo agradecería mucho.
Como os digo la idea es que un mismo led haga un par de destellos y luego se quede en un bucle de encendido/apagado como el efecto de día/noche.
En cambio está siendo IMPOSIBLE que funcione. Hace los dos destellos continuamente. Nunca pasa al efecto día/noche. Si quito uno de los efectos, el otro funciona perfecto y al revés también, pero los dos juntos no funcionan nunca porque siempre se queda parpadeando.
Después de mil pruebas he visto que el problema parecen ser los "delay". Si los quito se ve directamente el día/noche. Es normal puesto que al no haber delay, el encendio y apagado "digital" se hace muy rápido, pero al menos se ve que el código pasa de ahí. Pero si vuelvo a meter los delay para el parpadeo, la hemos fastidiado.
muchas gracias de antemano.
int led = 11; // the pin that the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
void setup()
{
pinMode(led, OUTPUT);
}
void loop()
{
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led,LOW);
delay(500);
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 125)
{
fadeAmount = -fadeAmount ;
}
delay(30);
}