Arduino tiene diferentes tipos de variables para representar valores.
-
Robótica
Tutoriales de modelamiento y control de robots autónomos.
Robots móviles,brazos robóticos, UAVs y más. -
Inteligencia Artificial
Tutoriales de diseño de algoritmos para resolver problemas prácticos.
Deep Learning, Machine Learning, Algoritmos genéticos y más. -
Electrónica
Tutoriales de diseño y programación para resolver problemas prácticos.
Arduino, PICs, Raspberry PI y más.
Convertir un número en un String
Si desea convertir un número para mostrarlo como texto en un LCD o dispositivo serie, la más simple solución es utilizar las bibliotecas LCD y Serial. Pero quizás esté usando un dispositivo que no tiene este soporte integrado o si desea manipular el número como una cadena en su sketch.
Para esto, se utiliza la función itoa o ltoa. Los nombres provienen de “integer to ASCII” (itoa) y “long a ASCII ”(ltoa).
Estas funciones toman tres parámetros: el valor a convertir, el búfer que contendrá la cadena de salida y la base numérica (10 para un número decimal, 16 para hexadecimal y 2 para binario).
El siguiente sketch ilustra cómo convertir valores numéricos usando ltoa:
Para esto, se utiliza la función itoa o ltoa. Los nombres provienen de “integer to ASCII” (itoa) y “long a ASCII ”(ltoa).
Estas funciones toman tres parámetros: el valor a convertir, el búfer que contendrá la cadena de salida y la base numérica (10 para un número decimal, 16 para hexadecimal y 2 para binario).
El siguiente sketch ilustra cómo convertir valores numéricos usando ltoa:
long value = 123456; void setup() { Serial.begin(9600); } char buffer[12]; // tipo de dato long tiene 11 caracteres //(incluyendo el signo menos) y la terminación null) void loop() { ltoa(value, buffer, 10); Serial.print(value); Serial.print(" tiene "); Serial.print(strlen(buffer)); Serial.println(" digitos"); delay(1000); }
Convertir un String en un número
Necesitas convertir un String a un número que hayas recibido a través de un enlace de comunicación y necesita usarlo como un valor de punto flotante o entero.
Las funciones atoi (ASCII a int), atol (ASCII a long) y atof (ASCII a float) convierten un String en enteros, enteros long y floats respectivamente.
El siguiente sketch ilustra cómo convertir un String a valores numéricos int, long y float:
char dataInt[5] = "1234"; char dataLongInt[11]="2147483647"; char dataFloat[5]="1.23"; int cInt=0; long cLongInt=0; float cFloat=0.0; void setup() { Serial.begin(9600); } void loop() { cInt=atoi(dataInt); cLongInt=atol(dataLongInt); cFloat=atof(dataFloat); Serial.print("Original data : "); Serial.print(cInt); Serial.print(","); Serial.print(cLongInt); Serial.print(","); Serial.println(cFloat); // Operaciones con datos cInt=cInt+1; cLongInt=cLongInt-1; cFloat=cFloat+0.07; Serial.print("Modificated data : "); Serial.print(cInt); Serial.print(","); Serial.print(cLongInt); Serial.print(","); Serial.println(cFloat); delay(1000); }