PWM con Visual Basic [Ayuda]

Hola a todos! Es la primera vez que escribo en el foro, aunque ya he visto algunos temas posteados.
Verán, tengo un problema a la hora de mandar datos por el puerto serial del VB al Arduino.
VB solo manda Strings (o al menos no he encontrado como mandar otros tipos de datos) por lo que al recibirlos el Arduino lee sus valores ASCII, por ejemplo, el número '1' toma el valor de 49 y el 9 el de 57.
Lo que he hecho es con un trackBar de VB mandar valores al Arduino y controlar la intensidad de un Led, velocidad de un motor etc. mediante PWM, pero me veo limitado a solo mandar valores entre 0 y 9 para usar la función map(lectura, 48, 57, 0, 255), pero de esta forma se pierde "definición".

Mi pregunta es, ¿alguien ha superado esta limitación? Poder mandar desde VB valores más grandes.

Sé que con Firmata se puede pero me gustaría hacerlo por mi cuenta, estoy aprendiendo XD

Gracias!

Hola,
puedes mandar una cadena de caracteres al Arduino, y luego la conviertes a entero con la función atoi(), por ejemplo

char cadena[] = "123456";
int valor;

valor = atoi(cadena);

Gracias! Me funcionó perfecto esa función XD