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

Combinación de estructuras Struct y Union

El ejemplo de ayer estaba bien pero tenia el problema de que si queríamos enviar varios datos teníamos que enviar varias estructuras Union. Para arreglar eso que mejor que hacer que el tipo de dato de la estructura Union sea una estructura Struct. Así se puede acceder byte a byte al Struct y enviarlo por Serial, bluetooth, RF, etc. para que el otro Arduino la reciba del tirón!

Arduino-struct-union

(más…)

Leer más

Estructuras Union de C / Arduino

6×05: Torres de Hanoi con pilas