Pages: [1]   Go Down
Author Topic: Primeros pasos con arduino y primer problema  (Read 924 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 :)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. smiley

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);
}

Logged

Forum Administrator
MMX
Offline Offline
Edison Member
*****
Karma: 37
Posts: 1139
hallo kompis
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

esto hubiera sido bueno postearlo en la web en Español ... lo podrias ahi? Seguro que mucha gente se interesara por este mismo problema.

Un saludo,

/David
Logged

Pages: [1]   Go Up
Jump to: