Utilización de Estructuras struct{};

Así como las matrices permiten definir el tipo de variables que pueden contener varios elementos de datos del mismo tipo, ee manera similar, las Estructuras son otro tipo de datos definido por el usuario que permite combinar elementos de datos de diferentes tipos.

En C, las estructuras son una colección de variables agrupadas por conveniencia.

En C++ son lo mismo que una clase excepto que los miembros de la estructura son públicos por defecto.

struct pcb
{
  String model ; // Nombre del modelo
  int npd ;       // Numero de pines digitales
  int npa ;       // Numero de pines analogicos
  float volt ;    // Tension de funcionamiento
} ;

void setup() {

  Serial.begin(115200);
  pcb PLACA_UNO_R3;

  // Asignación de valores
  PLACA_UNO_R3.model = "uno" ;
  PLACA_UNO_R3.npd = 13 ;
  PLACA_UNO_R3.npa = 5 ;
  PLACA_UNO_R3.volt = 5.0F ;

  // Lectura de valores
  int numpd = PLACA_UNO_R3.npd ;
  float voltage = PLACA_UNO_R3.volt ;

  Serial.print("\nVoltaje: ");
  Serial.println(voltage);
  
  Serial.print("Numero de pines digitales: ");
  Serial.println(numpd);
  
  Serial.print("Numero de pines analogicos: ");
  Serial.println(PLACA_UNO_R3.npa);  
    
  Serial.print("Modelo de PCB: ");
  Serial.println(PLACA_UNO_R3.model);

}

void loop() {

}

Agregado 27/05/2024:

Definiendo una Estructura

Para definir una estructura, usa la palabra clave struct seguida del nombre de la estructura y el cuerpo que contiene los miembros de datos.

cpp
struct SensorData {
  int id;
  float temperature;
  float humidity;
  bool status;
};

En este ejemplo, SensorData es una estructura que contiene un entero (id), dos flotantes (temperature y humidity) y un booleano (status).

Declarando Variables de Estructura

Una vez que hayas definido una estructura, puedes declarar variables de esa estructura.

cpp
SensorData sensor1;
SensorData sensor2;

Inicializando Estructuras

Puedes inicializar las variables de la estructura directamente cuando las declaras.

cpp
SensorData sensor1 = {1, 22.5, 45.3, true};
SensorData sensor2 = {2, 23.0, 47.8, false};

Accediendo a los Miembros de la Estructura

Puedes acceder y modificar los miembros de la estructura utilizando el operador de punto (.).

cpp
sensor1.temperature = 25.0;
Serial.println(sensor1.temperature);

Usando Estructuras en Funciones

También puedes pasar estructuras a funciones y devolverlas.

cpp
void printSensorData(SensorData sensor) {
  Serial.print("ID: ");
  Serial.println(sensor.id);
  Serial.print("Temperature: ");
  Serial.println(sensor.temperature);
  Serial.print("Humidity: ");
  Serial.println(sensor.humidity);
  Serial.print("Status: ");
  Serial.println(sensor.status);
}

SensorData updateSensorData(SensorData sensor, float newTemperature, float newHumidity) {
  sensor.temperature = newTemperature;
  sensor.humidity = newHumidity;
  return sensor;
}

Ejemplo Completo

cpp
struct SensorData {
  int id;
  float temperature;
  float humidity;
  bool status;
};

SensorData sensor1 = {1, 22.5, 45.3, true};
SensorData sensor2 = {2, 23.0, 47.8, false};

void setup() {
  Serial.begin(9600);
  
  // Imprimir datos del sensor
  printSensorData(sensor1);
  printSensorData(sensor2);
  
  // Actualizar datos del sensor
  sensor1 = updateSensorData(sensor1, 24.0, 50.0);
  sensor2 = updateSensorData(sensor2, 25.0, 55.0);
  
  // Imprimir datos del sensor después de la actualización
  printSensorData(sensor1);
  printSensorData(sensor2);
}

void loop() {
  // Nada que hacer aquí
}

void printSensorData(SensorData sensor) {
  Serial.print("ID: ");
  Serial.println(sensor.id);
  Serial.print("Temperature: ");
  Serial.println(sensor.temperature);
  Serial.print("Humidity: ");
  Serial.println(sensor.humidity);
  Serial.print("Status: ");
  Serial.println(sensor.status);
}

SensorData updateSensorData(SensorData sensor, float newTemperature, float newHumidity) {
  sensor.temperature = newTemperature;
  sensor.humidity = newHumidity;
  return sensor;
}

Resumen

  • Define una estructura con struct.
  • Declara variables de la estructura.
  • Inicializa las variables de la estructura.
  • Accede y modifica los miembros de la estructura con el operador de punto (.).
  • Usa estructuras en funciones para organizar y manipular datos de manera eficiente.

Esta es una manera efectiva de manejar datos complejos en proyectos con microcontroladores manteniendo el código limpio y organizado.


Publicado

en

Etiquetas:

Comentarios

Una respuesta a «Utilización de Estructuras struct{};»

  1. Avatar de Luis Allaniz
    Luis Allaniz

    Una estructura es un medio para crear una unidad que contiene varios elementos de datos que pueden tener diferentes tipos de datos. También tiene la ventaja de que los elementos de la estructura tienen nombres en lugar de los números de índice que usa con una matriz.

    Claro que puede tener una matriz de estructuras de la misma manera que puede tener una matriz de matrices

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Quieres avanzar con tu proyecto?