En este artículo presentamos una extensión al programa de Control remoto Arduino + LCD aprovechando el uso de punteros a función. Es recomendable darle una mirada al programa de ese artículo para comparar con este, y entender cómo evolucionó. De todas formas se puede leer este artículo en forma independiente para tener un ejemplo de uso de punteros a función. Pero el circuito está explicado en ese artículo y no se repetirá aquí.
En el programa utilizamos una estructura cuyo tipo llamamos State y de la cual creamos una sola global variable state. En ella encapsulamos el estado de la lógica del display. En el programa anterior el objeto de control del display era una variable global. Ahora lo incluimos en la estructura state para encapsular la información. Si bien es común en los programas de Arduino tener muchas variables globales, eso no es una buena práctica de programación. En este caso al encapsular las variables que tienen que ver con la lógica del display en una estructura, el código queda más ordenado. Aunque la estructura en sí siga siendo global. Pero ese punto es imposible de solucionar porque Arduino llama constantemente a la función loop() y carece de punto de entrada como una aplicación estándar de C/C++.

Continue reading Punteros a función y structs con Arduino →