Actualización 1.4 de la librería RTC para reloj Dallas DS1307 y DS3231

He aprovechado estos días para actualizar la librería, prácticamente rehaciéndola entera salvo el código de un par de métodos que he conservado.

Ahora la librería cambia automáticamente entre horario de verano e invierno, permite configurar cada dato del reloj de forma individual, o conjunta, y permite obtener sus datos desde objeto de datos o si se prefiere como una cadena de texto lista para imprimir.

(más…)

Leer más

Lo que da de sí la clausula #define de C!

En Arduino la función sizeof() devuelve el número de bytes que ocupa una variable o array. También podemos usarla para saber el número de elementos que tiene un array, para ello se obtiene el tamaño en bytes del array y se divide por el tamaño que tiene el tipo de dato que estamos usando:

De este modo sizeof(array) devuelve 14 porque el array tiene 7 elementos y cada uno de ellos ocupa 2 bytes, ese 14 se divide después por sizeof(int), 2 bytes, y da como resultado 7 elementos.

Para que el código sea genérico y no haya que indicarle el tipo de dato, se puede usar el siguiente código:

El problema es que queda feo y muy largo si debemos de repetirlo muchas veces. Por ello otra solución mas ingeniosa seria crearnos una macro que contenga ese código.

Usar la memoria EEPROM de Arduino para guardar la configuración del programa de forma muy cómoda

Ya explique en anteriores entradas como hacer uso de las estructuras UNION y STRUCT, también como usar la memoria EEPROM de Arduino para poder guardar de forma permanente los datos que queramos.

En esta ocasión toca ver como guardar todos los datos que queramos en la memoria EEPROM de forma muy cómoda, y no un solo dato como la otra vez. Muy útil para guardar la configuración de nuestro programa y cargarla cada vez que encendamos el Arduino.

(más…)

Leer más

Medir tiempo de ejecución de un programa en C#

Segunda APP para Android: Task Calendar

La aplicación se trata de un calendario de tareas que permite almacenar tareas agrupadas por etiquetas. Estas tareas se muestran en la pantalla principal a través de un FragmentActivity que permite cambiar entre las tareas de diferentes etiquetas arrastrando la pantalla de izquierda a derecha.

Estas tareas pueden añadirse, editarse o eliminarse desde los diferentes menús disponibles en la aplicación.

(más…)

Leer más