You are on page 1of 3

25/2/2017 CombinacindeestructurasStructyUnionelblogdegiltesa

Combinacin de estructuras Struct y Union


(https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-
union)
31 Mar 2013 (https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-union) 3 comentarios (https://giltesa.com/2013/03/31/combinacion-de-
estructuras-struct-y-union#comments)

El ejemplo de ayer estaba bien pero tenia el problema de que si queramos enviar varios datos tenamos 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 tirn!

(https://giltesa.com/wp-content/uploads/2013/03/Arduino-struct-union.png)

Arduino
1 /**
2 * Author: giltesa
3 * WebSite:http://giltesa.com
4 * License:CC BY-NC-SA 3.0
5 */
6
7 struct Sensores{
8 float temperatura;
9 float humedad;
10 int luz;
11 };
12
13 union Datos{
14 Sensores dato;
15 byte b[sizeof(Sensores)];
16 }
17 origen, destino;
18
19
20 void setup()
21 {
22 Serial.begin(9600);
23 delay(1000);
24
25
26 origen.dato.temperatura = -103.38;
27 origen.dato.humedad = 84.06;
28 origen.dato.luz = 124;
29
30 Serial.print("OrigenT="); Serial.print(origen.dato.temperatura);
31 Serial.print("\nOrigenH="); Serial.print(origen.dato.humedad);
32 Serial.print("\nOrigenL="); Serial.print(origen.dato.luz);
33
34

(https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-union?share=twitter&nb=1)

(https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-union?share=facebook&nb=1)

(https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-union?share=google-plus-1&nb=1)

Arduino (https://giltesa.com/category/electronica/arduino) C (https://giltesa.com/category/informatica/programacion/c)

Arduino (https://giltesa.com/tag/arduino) Bluetooth (https://giltesa.com/tag/bluetooth)

Related Posts
https://giltesa.com/2013/03/31/combinaciondeestructurasstructyunion 1/3
25/2/2017 CombinacindeestructurasStructyUnionelblogdegiltesa
Related Posts

Usar la memoria EEPROM de Arduino para


(https://giltesa.com/2013/06/27/usar-la-memoria-
guardar la conguracin del programa de
eeprom-de-arduino-para-guardar-la-conguracion-
forma muy cmoda
del-programa-de-forma-muy-comoda)
(https://giltesa.com/2013/06/27/usar-la-
memoria-eeprom-de-arduino-para-guardar-la-
conguracion-del-programa-de-forma-muy-
comoda) (https://giltesa.com/2015/05/14/guardar-en-un-
Ya explique en anteriores entradas como hacer servidor-web-informacion-enviada-desde-un-
uso de las estructuras UNION y STRUCT, arduino)
tambin como usar la memoria EEPROM de Guardar en un servidor web informacin
Arduino para poder guardar de forma enviada desde un Arduino
permanente los datos que queramos. En esta (https://giltesa.com/2015/05/14/guardar-en-un-
ocasin
27 Junio toca
2013ver como guardar todos los datos servidor-web-informacion-enviada-desde-un-
arduino)
14 Mayo 2015

3 comentarios en Combinacin de estructuras Struct y Union

RICARDO MARTINEZ
24 enero 2014 a las 12:40 pm (https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-union#comment-2964)

Perdona Alberto mi supina ignorancia, pero precisamente estoy montando una estacin metereologica para mi mujer (como excusa para
trastear con su permiso) y estoy encallado con la transmisin remota a partir de modulo RF 433 de temperatura+humedad+sensor lluvia.
Tu solucin para enviar los datos me parece genial, pero no acabo de ver como funciona el bucle for de tu ejemplo (sin llaves?) y se me hace
dicil ligarlo con el codigopara transmitir, y por supuesto recibir en la base.
Me interesa ademas al recibir los datos no solo mostrarlos en el LCD, sino cargarlos en variables para poder procesarlos, sobre todo la tem.
exterior que quiero trabajarla con la presin admosferica (el sensor lo tengo en la base ya) para hacer una minima previsin del tiempo
futuro, que le va a encantar a mi chica !!! (aunque no acierte siempre, jajaja). Perdona el ladrillo y mil gracias adelantadas.

RESPONDER (HTTPS://GILTESA.COM/2013/03/31/COMBINACION-DE-ESTRUCTURAS-STRUCT-Y-UNION?REPLYTOCOM=2964#RESPOND)

GILTESA (HTTPS://GILTESA.COM/)
24 enero 2014 a las 15:23 pm (https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-union#comment-2965)

Hola Ricardo,

El bucle for cuando no tiene llaves lo que hace es iterar la siguiente linea que tiene debajo, solo la primera, ese for seria lo mismo que este
otro:

for(int i=0 ; i < sizeof(origen.dato) ; i++) { destino.b[i] = origen.b[i]; } Y lo que hace en este ejemplo es copiar los datos de una estructura a
otra. Tu en realidad lo que tendrs que hacer es enviar una estructura desde un modulo y recibirla desde el otro. Si por ejemplo tu
estructura tiene un tamao de 20 (eso te lo indica: sizeof(origen.dato)) entonces tendrs que imprimir/enviar esos 20 bytes uno tras otro al
modulo RF para que lo envi. Luego el otro tendr que recogerlos y restaurarlos en otra estructura. Es algo complejo, te recomiendo que
pruebes primero este cdigo y luego cuando veas como funciona lo puedes ir complicando aadiendo el cdigo para la transmisin de
datos. Saludos.

RICARDO MARTINEZ
24 enero 2014 a las 16:26 pm (https://giltesa.com/2013/03/31/combinacion-de-estructuras-struct-y-union#comment-2966)

Gracias, alberto, ahora lo tengo claro,es lo que pensaba, pero llevo ya tanto tiempo dandole vueltas y hechando horas a esta funcionalidad
que aadi a ultima hora a mi proyecto (la base ya est resuelta y montada, a falta de aadirla) que no quera meterme a fondo sin una
minima seguridad Transmitir OK , ya veremos como decodico y meto en variables oat & int lo recibido, preveo que basicamente es la
misma idea de codigo . Ya te molestare cuando llegue ahi si me encallo, ya que eres tan amable.

Un saludo y felicidades por tu magnico blog

RESPONDER (HTTPS://GILTESA.COM/2013/03/31/COMBINACION-DE-ESTRUCTURAS-STRUCT-Y-UNION?REPLYTOCOM=2966#RESPOND)

ESCRIBA AQU SU COMENTARIO

https://giltesa.com/2013/03/31/combinaciondeestructurasstructyunion 2/3
25/2/2017 CombinacindeestructurasStructyUnionelblogdegiltesa

Introduceaqutucomentario...

(http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es_ES)
el blog de giltesa por giltesa (https://giltesa.com/sobre-mi/) se encuentra bajo una Licencia Creative Commons (http://creativecommons.org/licenses/by-nc-sa/3.0/es)
giltesa (https://giltesa.com) @ 2007 - 2017 - Powered by WordPress (http://es.wordpress.org/)

https://giltesa.com/2013/03/31/combinaciondeestructurasstructyunion 3/3

You might also like