Paso 7: contadores de tiempo
Tuvimos un tiempo duro con los contadores de tiempo mientras se trabaja en este proyecto por varias razones:
· Contador de tiempo 0:
Pretende usar este temporizador para controlar los movimientos de la palanca de mando así que no tenemos ningún rebotes mientras lo usa. Mientras nos estábamos probando, utilizando millis(), delay() y varias funciones de temporizador 0, nos dimos cuenta de que la pantalla dejo de funcionar correctamente. Realmente no entendía por qué estaba trabajando de esa manera.
Después de algún tiempo tratando de arreglar eso, se utilizó la versión anterior de nuestro código, sin utilizar las funciones de contador de tiempo 0 y el LCD funcionado bien. Así que finalmente se dio cuenta de la biblioteca LiquidCrystal.h que estábamos usando para trabajar con la pantalla LCD utiliza Timer 0, que significa no hay otras funciones que trabajan con el mismo contador pueden ser utilizados.
· Timer 1:
Utilizamos este temporizador con servo, ya que necesitan una señal PWM y este temporizador puede proporcionarlo. Esta fue la más fácil ya que la librería servo.h tiene varios ejemplos sobre cómo trabajar con el servo y control.
· Temporizador 2:
Después de todo el tiempo en tratar de utilizar el Timer 0 para controlar los movimientos de la palanca de mando, cuando finalmente comprendimos que no podíamos usarlo, se buscaron otras soluciones. En la página web de Arduino, vimos el Arduino UNO que estábamos usando tenía otro temporizador, el temporizador 2; descargar la biblioteca y se lo incluyo. Tenía un ejemplo sobre cómo inicializar el temporizador y llamar a una función después de un tiempo de milisegundos, que era ideal para nuestro proyecto.