Hola a todos! Tengo una duda: ¿Como puedo convertir una string a un integer en arduino?
La idea es que desde un programa externo envie una string por el puerto usb (un numero de 0a 255), arduino la recibe, la transforma en int, y la usa para dar una salida PWM.
recives un caracter, y le restas "0", te dará el valor del numero en decimal. luego dependiendo de la posicion que se reciva el caracter deberas multiplicarlo por 1, 10 o 100, sumas y obtines el numero.
cuando lelgue a casa te paso el codigo que lo tengo hecho.
un saludo
Graaax! ^^ Espero al codigo, porque no entiendo bien a lo que te refieres :S. Soy novatillo todavia, a ver si eso cambia de una vez!
Hola,
también puedes usar la función atoi() que significa 'alphanumeric to integer'
int numero;
char cadena[10] ;
strcpy(cadena, "123"); // esto sustituye a lo que se recibe por puerto serie
numero = atoi(cadena);
¿Seria algo como este codigo?
int MotorPin1 = 9;
int MotorPin2 = 13;
void setup(){
pinMode(MotorPin1, OUTPUT);
pinMode(MotorPin2, OUTPUT);
digitalWrite(MotorPin2, LOW);
Serial.begin(9600);
}
void loop(){
char val = Serial.read();
int val2 = atoi(val);
analogWrite(MotorPin1, val2);
}
Y digo parecido porque aqui me da error: invalid conversion from 'char' to 'const char', y sinceramente no entiendo a lo que se refiere..
Sabía que esto ya lo habia yo respondido alguna vez.
leete Pasar de string a int - #8 by system - Español - Arduino Forum
el código no lo encuentro, pero básicamente es como escribo en una de las respuestas.
un saludo
Hola,
a atoi() hay que pasarle una cadena de caracteres, no un carácter. Primero tendrías que completar toda la cadena de dígitos recibida por el puerto serie.
Gracias por las respuestas, voy a tratar de aplicarlas. Si lo consigo o encuentro otra solucion la posteare aqui! ^^