Delay(Valor) - Arduino Duemilanove Manual Del Usuario

Tabla de contenido

Publicidad

Apuntes de Arduino
Advertencia: Téngase en cuenta que el dato que devuelve millis() es de tipo unsigned long, por
lo que se pueden generar errores si se intenta hacer operaciones matemáticas con otros tipos de
datos como enteros.

14.2. delay(valor)

Pausa el programa durante el tiempo (en milisegundos) especificado como parámetro. El dato
dado como parámetro es de tipo unsigned long. No devuelve nada.
Ejemplo
int ledPin = 13; // LED conectado al pin digital 13
void setup ()
{
pinMode (ledPin, OUTPUT); // pone el pin digital como salida
}
void loop ()
{
digitalWrite (ledPin, HIGH); // enciende el LED
delay (1000);
digitalWrite (ledPin, LOW); // apaga el LED
delay (1000);
}
Advertencia: Si bien muchos programas usan delay() para crear pausas cortas, como en el caso
del parpadeo del LED del ejemplo anterior, o para eliminar rebotes al conmutar interruptores,
el uso de delay() tiene desventajas ya que, miestras el programa está pausado, no hay lectura de
los sensores, ni cálculos matemáticos, ni se pueden manipular los pines, etc. Un método
alternativo para controlar el tiempo es el uso de la función millis().
Sin embargo, algunas cosas siguen funcionando mientras el programa está pausado por la
función delay(). Las interrupciones siguen funcionando, los valores PWM (analogWrite) y los
valores y estados de pin se mantienen.
Ejemplo: Blink sin retardo usando millis()
A veces es necesario hacer dos cosas a la vez. Por ejemplo, hacer parpadear un LED mientras se
está atento a la pulsación de un botón en otra entrada. En este caso, no se puede usar delay(), ya
que se para todo el programa mientras que el LED parpadea. El programa perdería la pulsación
del botón si ocurre durante el tiempo de delay(), que es casi todo el tiempo. Este sketch muestra
cómo hacer parpadear el LED sin usar delay(). Guarda la última vez que Arduino encendió o
apagó el LED. Entonces, cada cierto tiempo, chequea si ha pasado un intervalo de tiempo
determinado. Si es así, se cambia el LED de encendido a apagado o viceversa. El código utiliza la
función millis() y no utiliza delay().
Apuntes de Arduino. Tecnología
// espera un segundo
// espera un segundo
22

Publicidad

Tabla de contenido
loading

Productos relacionados para Arduino Duemilanove

Este manual también es adecuado para:

Uno

Tabla de contenido