Conversion a int

Hola, es una pregunta teóricamente sencilla pero no encuentro la solución.
Estoy leyendo a traves del puerto serial, y le quiero pasar el valor recibido al led indicándole la intensidad.
El problema que me encuentro es que quiero convertir el
valor recibido a int pero la función atoi no me vale.
ya que no me convierte el valor en lo que deseo :-[

switch(ent){
              case 'i': 
                       if(Serial.available()){
                         
                           char entrada[4];
                           while(controlnum()){ entrada[contentrada++] = ent; }                  
    //                       Serial.print(atoi(entrada));
                          analogWrite(motorizq,(int)(entrada-'0'));
                     //       analogWrite(motorizq,255);
                        }

he provado
analogWrite(motorizq,(int)(entrada-'0'));
analogWrite(motorizq,atoi(entrada));

pero claro atoi me serviria si fuera entrada = "255" por ejemplo
pero lo que yo tengo es entrada = '255'
Nose si me explico, es que no se cual es la diferenciacion entre "" y las ' '

Saludos y gracias

Lo que recibes por el puerto série son los caracteres ASCII de los números.

Si te pillas una tablas ASCII (En google hay billones), comprobarás que el 0 se corresponde al ASCII 48.

Lo que tienes que hacer, es restar 48 al caracter que recibas por el puerto série y lo almacenas en el array de chars.

ejemplo delo que recibe el puerto serie sin resta del número 007
484855
ejemplo restando
007

Luego conviertes el array con atoi tal y como lo haces ahora.

Bye.