:)Con un potenciometro conectado a la entrada analogica intentaba que el LED conectado al pin 13 se encendiese y se apagase mas rapido o lento dependiendo del giro que yo le daba al potenciometro.
Y todo fue de perlas pues fui usando los ejemplos para crear mi propio programa de control.
¡¡¡Pero solo lograba que se encendiese y se apagase un numero FIJO de veces!!!
Y me estaba volviendo loco!!!
¿que podria ir mal en la placa?
finalmente descubri que la funcion MILLIS() me daba un numero que iba en aumento a medida que pasaban los segundos y ese numero yo lo almacenaba en una variable definida al principio de mi programa; concretamente en: int previousMillis...
Entonces me di cuenta!!!... ...se supone que una variable int solo puede almacenar un numero que no sea demasiado grande, asi que voy a cambiar "int" por "long" y a ver que pasa... ¡¡y si sigue fallando tiro la placa a la basura!!
...y el problema se resolvio!... aun veo parpadear el LED naranja unas dos veces por segundo, mientras que antes se me quedaba encendido fijo al medio minuto de resetear la placa arduino.
Aqui pongo el codigo para variar el parpadeo del led conectado al pin 13 digital de arduino con un potenciometro externo conectado entre GND, V5+ y la entrada analogica 0:
int ledPin = 13; // LED conectado al pin digital número 13
long previousMillis = 0; // Almacena la última vez que el LED fué modificado
int value = LOW; // Estado anterior del LED
int interval = 1000; // Intervalo de parpadeo (milisegundos)
void setup()
{
pinMode(ledPin, OUTPUT); // Configura como salida el pin digital
}
void loop()
{
if (millis() - previousMillis > interval)
{
previousMillis = millis(); // Recuerda la última vez que el estado del LED cambió
if (value == LOW) // Si el LED está apagado lo enciende y viceversa.
{
value = HIGH;
}
else
{
value = LOW;
}
digitalWrite(ledPin, value);
}
interval = analogRead(0);
}