Te doy la bienvenida a un nuevo capítulo de «La tecnología para todos«. Hoy hablamos con German y José Manuel sobre: temporizadores o timers en Arduino.
Tirando del hilo sobre el funcionamiento de millis() y ¿Cómo cuenta el tiempo? Llegamos a los timers. Por ello para tener una mayor comprensión de este capítulo te sugiero que repases el contenido sobre Arduino millis y micros en el blog.
Te invito a seguirnos en Twitter.
- Germán Martín @gmag12
- José Manuel Galileo @G4lile0
- Luis del valle (proyectos MAKER) @programarfacilc
- Luis del Valle (Inteligencia Artificial) @ldelvalleh
Prepara tus pochoclos y disfruta de ? «Makerflix» la serie de pódcast tertulia con una pisca friki.
Indice de contenidos
¿Qué es un temporizador o timer en Arduino?
Las interrupciones con temporizadores Arduino, también conocidas como «TIMER INTERRUPT», se trata de relojes internos que permiten lanzar eventos temporales.
Para dar un ejemplo, los «timer Arduino» permiten hacer una tarea a intervalos cronometrados muy específicos, independiente de lo que esté sucediendo en tu código.
¿Qué son los eventos temporales?
Ya se conocen las interrupciones externas de Arduino, en la que se puede usar un pulsador para enviar una llamada de atención a nuestros proyectos en cualquier momento.
Pasos de una interrupción externa con un pulsador:
- Se pulsa el botón «evento externo».
- Detiene la ejecución del hilo principal.
- Se ejecuta una función llamada ISR.
- Se ejecuta un código concreto.
- Y luego, vuelve ejecutar el hilo principal, donde había quedado.
Interrupción externa con temporizador Arduino
Para el caso de interrupciones con temporizadores Arduino sucede algo similar, pero en lugar de esperar un «evento externo», se emplea el tiempo o mejor dicho «eventos temporales».
En una interrupción externa con temporizadores, se puede lanzar la interrupción cuando hay desbordamiento (overflow) o en un momento determinado. Aunque la última opción solo es posible en temporizadores programables.
A grandes rasgos estos serian los pasos que se sigue para la interrupción:
- Ocurre el desbordamiento del temporizador. o avanza hasta cierto momento que hayas programado.
- A continuación, detiene la ejecución del hilo principal.
- Después se ejecuta una función llamada ISR.
- Se ejecuta un código concreto.
- Y más adelante, vuelve ejecutar el hilo principal, donde había quedado.
Los temporizadores con Arduino se utilizan en la función millis () y micros () o las señales PWM.
¿Cuántos temporizadores hay en un Arduino UNO?
Existen 3 temporizadores en Arduino UNO Timer0 , Timer1, Timer2
- Timer0 y Timer2 (8-bit) pueden contar hasta 256 valores (0-255).
- Timer1 (16-bit) puede contar hasta 65536 valores (0-65535).
¿Cómo funciona un timer o temporizador Arduino?
Para contar tiempos es necesario conocer los siguientes conceptos: señal periódica, señal de reloj, ciclos, flancos de una señal, frecuencia y periodo.
Si quieres determinar el tiempo a partir de una señal de reloj. Se toma la cantidad de ciclos que han pasado y se multiplica por el tiempo que tarda cada ciclo.
Por ejemplo si la frecuencia es 4 hz, y pasaron 4 ciclos, eso equivale a 1 segundo.
Un Arduino Uno, cuenta con una frecuencia en su señal de reloj de 16 Mhz y un periodo de 0,0625 microsegundos.
Un temporizador de Arduino consta de un circuito que mide los ciclos de reloj a partir de un flanco (de subida o bajada). En el momento que el contador llega a un número de ciclos determinado, el circuito temporizador lanza la interrupción.
Temporizador WatchDog Arduino
Se trata de un tipo de temporizador de Arduino (aunque los puedes encontrar en muchos microcontroladores).
Es el encargado de resetear la placa en un momento concreto.
Una aplicación para este temporizador de Arduino puede ser cuando es necesario salir de un bucle infinito.
También se lo llama «perro guardián».
PLC basado en ESP32
Por otro lado, si quieres saber que placa ESP32 es la mejor para iniciar puedes repasar este artículo. Pero, si ya tienes una y quieres programarla puedes aprender aquí.
¿Cómo programar ordenadores antiguos?
Notas del pódcast sobre temporizadores con Arduino
- 00:02:42
- Medialab-Prado Madrid
- 00:05:54
- Temporizadores en Arduino
- 00:11:59
- ¿Qué es un temporizador o timer?
- 00:15:09
- Flip Flop
- 00:15:32
- Temporizadores en Arduino Uno: «Timer 0, 1, 2»
- 00:16:23
- industrialshields : PCL con ESP32
- 00:17:59
- ¿Cómo funciona un timer o temporizador?
- 00:20:32
- Retrocompatibilidad
- Velocidad adicional en Arduino. ¿Vale la pena?
- 00:25:12
- ¿Cómo funciona un timer o temporizador?
- 00:26:35
- Overflow en temporizadores Arduino
- 00:29:46
- Prescaler o divisores de frecuencia, precisión de un temporizador Arduino
- 00:31:57
- 00:32:14
- Temporizador WatchDog Arduino
- 00:37:42
- 00:39:23
- Datos y la función millis () en Arduino
Gracias a Shutterstock por la cesión de las imágenes.