Tipos de Datos

En todos nuestros sketches aparecen variables con palabras que las preceden y que indica el tipo de datos de las mismas. También hemos visto estas palabras delante de los nombres de todas las funciones, indicando el tipo de dato que devuelven. Además, cuando hablamos de las variables, recomendábamos ajustar nuestras variables a los tipos de datos necesarios, sin pecar de demasiado pequeños ni demasiado grandes. A continuación tenéis el listado de los distintos tipos de datos primitivos que vamos a manejar en nuestros sketches de Arduino.


Tipos de Variables Arduino

Hay unas cuantas cosas peculiares, que a los que han programado alguna vez les resultará curioso, como que float y double hagan referencia al mismo tipo de datos, por ejemplo. Expliquemos un poco los intervalos de valores de cada uno:

– Los tipos de datos int, byte, unsigned char, char, word, unsigned int, long y unsigned long representan números sin parte decimal.

– Por su parte, los tipos de datos float y double representan números en punto flotante, es decir, tienen parte decimal.

– Un array es un conjunto de variables que se almacenan en posiciones sucesivas, determinadas por índices numéricos. El primer índice de un array es 0, por lo que un array con 5 elementos, tendrá como posiciones inicial y final 0 y 4, respectivamente.


Para acceder a las distintas posiciones de un array se utilizan los corchetes [ ], incluyendo en su interior el índice que queremos alcanzar. La declaración de un array y su inicialización lo podemos ver en el siguiente código de ejemplo:

También es posible recurrir a arrays de más de una dimensión (2,3,…). Su uso se resume en el siguiente código:

– Los datos string no son más que un caso particular de arrays, dedicados al almacenamiento de caracteres (char). Veremos cómo operar con strings en otro artículo.

– Por último hay que tener en cuenta el tipo de datos void, que se usa en funciones que no devuelven ningún valor.


8 Comentarios

  1. Hola, lo que pasa es que no me quedo claro esto despues de leer la entrada de operadores matematicos… ahi habla del overflow y underflow, lo que no me queda claro es que por ejemplo si tenemos algo asi como «int suma = 30000 + 2768» significa que la variable suma es igual a -32767? una alternativa que se me ocurrio fue pensar que -32767 y 32767 hacen referencia a la «longitud» del numero… es decir que si tengo un numero de 32767 cifras y le sumo 10 por ejemplo eso dara como resultado -32767….

    Porfavor saquenme de esta duda 😀

    • Hola Francisko, en primer lugar gracias por el comentario.

      En efecto estás en lo cierto con la suma, es decir, 32768 + 1 = -32768. Hablamos de ambos problemas (underflow y overflow) en el artículo Operadores Matemáticos I.

      Si tienes cualquier otra duda estaremos encantados de ayudarte.

  2. Hola, no logro que funcione en mi codigo un array con 31 datos del tipo: » float travel_m1[31] = {0, -1.3, -1.4, -1.3, -1.4, -1.3, -1.4, -1.3, -1.4, -1.3, -1.4, -1.3, -1.4, -1.4, -1.3, -1.4, -1.3, -1.4, -1.3, -1.4, -1.3, 2, 4, 4, 4, 4, 4, 3, 1, 1, 0};» . Estoy llamandolo dentro de un «for»  que es: «for (int i=0; i <= 31; i++){  » y llamando el dato de este modo: «traveled_m1 = travel_m1 – error_m1 ;» y me contesta: «invalid types ‘int[int]’ for array subscript»

    A) Podrían informarme si es valido un array con datos que tienen una decimal?

    B) Logran identificar que estoy haciendo mal?

     

    Saludos

    Oscar

    • Hola Óscar. A priori veo dos problemas, uno en el bucle for y otro en la forma de operar.
      Con respecto a la forma de operar, si estás dentro de un array, para operar con cada uno de los elementos, hay que hacerlo accediendo a través de su índice. Por ejemplo, para acceder al primer elemento del array «travel_m1» hay que utiliar el código travel_m1[0], y así sucesivamente. Recuerda comprobar que los tipos de datos son compatibles entre sí.
      Con respecto al bucle for, recuerda que los arrays empiezan en la posición 0. Por tanto, un array de 10 elementos, tendrá su primera posición en el índice 0 «nombre_array[0]» y su última posición en el índice 9 «nombre_array[9]». Así, en el bucle for para recorrer todos los elementos, el enunciado ha de ser «for(int i=0; i < tamaño_array; i++)". Un saludo.

  3. Hola CIDsTAR.
    He estado leyendo con interes tu tutorial y quesiera, si no te importa, preguntarte una duda. Teniendo ya una matriz (char nombre[20], por ejemplo) definida por cualquiera de los metodos que has expuesto, si quisieramon poner otro dato en la misma matriz, ¿como se haria?: nombre=”Diego”, nombre[]=”Diego” o nombre[20]=”Diego”. ¿O no se puede poner de una vez y hay que ponerlo elemento por elemento (nombre[0]=”D”, nombre[1]=”i”, etc.
    Gracias por la paciencia. Saludos.

Deja una respuesta

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

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies