Arduino atoi – convertir de String a Int

Arduino atoi – Introducción

En Arduino atoi es una función que permite convertir una cadena de caracteres (char) a una variable entera (int). Es útil en conjunto con el puerto serial. Por ejemplo, cuando se ingresa información por el puerto Serial que se desea convertir a una variable numérica.

Sintaxis:

VariableEntera = atoi(vectorDeCaracteres);

Parámetros de entrada:

  • Vector de caracteres. Por ejemplo:
    • char vector1[2] = {‘1′,’0’};
    • const char vector2[3] = {‘1′,’2′,’3’};

Parámetros de salida:

  • Valor entero tipo int.

Consideraciones especiales de la función de Arduino atoi

  • Se ignorarán todos los espacios en blanco hasta encontrar un número en carácter.
  • Es posible agregar el signo si el vector tiene indicado dicho carácter antes del número.
    • const char vector2[3] = {‘-‘,’2′,’3’};
  • El número que se construirá va desde que se encuentra un signo y/o número hasta el siguiente espacio en blanco.
  • Dicha función no requiere de alguna biblioteca especial en el lenguaje Arduino.

Ejemplos:

A continuación se especificarán a los siguientes ejemplos que utilizan a la función de Arduino atoi.

Ejemplo-1. Convertir un vector de caracteres a entero en Arduino

En este ejemplo se considera un vector de 5 elementos del tipo carácter almacenados en un arreglo. En otras palabras convertiremos una variable del tipo  char a int arduino. Recordamos que una variable del tipo char se guarda en un espacio de memoria de 8-bits. Por lo tanto el número en carácter: «12156» es un conjunto de 40-bits en código ascii. Es por eso que la función atoi es de mucha importancia en cualquier lenguaje de programación. Esto debido a que el microcontrolador de Arduino puede hacer operaciones con variables pero no con caracteres. Por el contrario el usuario maneja caracteres ascii en lugar de números.

Para poder visualizar la información y/o los resultados se utilizará un puerto serial y la función de Arduino Serial Print. Este programa sólo imprimirá una vez el resultado y posteriormente no hará nada.

Código del Ejemplo-1

Ejemplo-2 Utilizar a una variable de Arduino del tipo String con atoi

Por lo general en el lenguaje de Arduino se trabajan más con String que con un vector de caracteres. Esto es debido a que no es necesario de manera estándar, asignar un espacio de memoria para el string (aunque sí es recomendable). Para poder hacer uso de la función atoi con una variable string, se requiere un paso adicional para convertir la cadena string a un vector de caracteres. Finalmente para dicho propósito se hace uso de una clase de las variables String que se llama .toCharArray.

Arduino toCharArray

Sintaxis:
VariableString.toCharArray(vectorDeChar,longitudDelVectordeEntrada);

Parámetros de entrada:

  • Vector de caracteres.
  • Longitud del vector de caracteres que se desea convertir. Es decir, si el String tiene 4 bytes, entonces la longitud será 4.

Parámetros de salida:

  • Vector de caracteres char.

Código del Ejemplo-2

Ejemplo-3 Convertir un dato de Arduino String a int mediante el puerto serial

Para este ejemplo se uso el puerto serial para recibir información. En el siguiente código se verá cómo pasar de string a int. Por ejemplo, el objetivo es guardar cada carácter enviar de el puerto serial hasta encontrar un salto de línea \n. Entonces, una vez encontrado el saldo de línea se procede a convertir mediante la función del ejemplo-2 a un vector de caracteres. Posteriormente este vector se convierte a un número entero mediante la función de Arduino atoi.

Para el ejemplo-3 es muy importante señalar que se debe de tener la configuración en el monitor serial: «NewLine o NuevaLínea».

Código del Ejemplo-3

Resultado del ejemplo-3

Arduino ATOI resultado del ejemplo-3

Dr. Rubén E-Marmolejo

Profesor de la Universidad de Guadalajara, México

3 Comments

  1. moscho julio 1, 2018
  2. Administrador julio 2, 2018
  3. anonimo mayo 12, 2019

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.