Converter inteiro para string

char SuaString[4] = "";

int Numero = 0;

void setup(){

Serial.begin(9600);

Serial.println("Digite um numero qualquer.");

}

void loop(){

if (Serial.available() > 0) {

for (int i=0;i<4;i++){

//Armazena na string (array de char)

SuaString = Serial.read();

  • delay(10);*

  • }*

  • //Converte a string em inteiro*

  • Numero = atoi(SuaString);*

  • //Imprime o valor inteiro pela serial*

  • Serial.print(Numero);*

  • Serial.print(" em binario e igual a: ");*

  • Serial.println(Numero, BIN);*

  • int a=1;*

  • char b[2];*

  • String str;*

  • str=String(Numero, BIN);*

  • str.toCharArray(b,2);*

  • Serial.println(str);*

  • }*
    }
    Quando executa ele exibe:
    5 em binario e igual a: 101
    100
    6 em binario e igual a: 110
    111
    Algumas conversões ficam iguais outras dão inconsistência, alguém pode me ajudar?

O teu código apenas converte o último caracter que é digitado... é isso que pretendes? E se é, porque é que fazes a pessoa escrever o caracter 4 vezes?

Se não for, o que tens de fazer é:

char SuaString[5]; 

void loop(){
 

    if (Serial.available() > 3) {// tu queres garantir que os números estão disponíveis para serem lidos... 

     for (int i=0;i<4;i++){

      //Armazena na string (array de char)

      SuaString[i] = Serial.read();

      delay(10);

   }
   SuaString[4] = 0;

Experimenta assim.