Конвертация типов переменных в среде Arduino

  • Byte to Int

    Читаем Serial и записываем в int
    Получение целого однозначного числа(1..9)

IntVar=(Serial.read() - '0');

Получение целого многозначного значения (10+)

delay(200)//зависит от скорости передачи
 while (Serial.available()) IntVar = IntVar * 10 + (Serial.read() - '0');

Получение текста

delay(200);//зависит от скорости передачи
while (Serial.available())Var = Var + (char)(Serial.read());
  • String to Int

int intVar;
String stringVar = "744";
intVar=stringVar.toInt();
  • String to Float

float floatVar;
char floatbufVar[32];
String stringVar = "744";
stringVar.toCharArray(floatbufVar,sizeof(floatbufVar));
floatVar=atof(floatbufVar);
  • String to CharArray

String stringVar = "744";
char charBufVar[50];
stringVar.toCharArray(charBufVar, 50);
  • CharArray to Byte

char CharArrayVar[8] = {1,0,1,1,0,0,1,1};
char CharVar = 0;
for(int i = 0; i<8; i++){
  CharVar |= lCharArrayVar[i] << (7-i);
}
PORTD = CharVar;
  • char to string

char[] chArray = "пример";
String str(chArray);
  • String to const char*

String stringVar=String('exemple');
char charVar[sizeof(stringVar)];
stringVar.toCharArray(charVar, sizeof(charVar));
  • String to Unsigned long integer

char **pointer, *stringVar;
unsigned long unsignedVar;
stringVar = "324234g";
unsignedVar = strtoul(stringVar,pointer,10);//=324234
  • Int to String

String stringVar = String(intVar, DEC);
  • Int to HEX(String)

String stringVar = String(intVar, HEX);
  • Int to BIN(String)

String stringVar = String(intVar, BIN);
  • uint8_t to char

Serial.print((char)buf[i]);
  • Int to char

const char* IntToChar (unsigned int v) {
  sprintf(buffer, "%d", v);
  return buffer;
}
  • Float to char

const char* FloatToChar (float f) {
  sprintf(buffer, "%d.%02d", (int)f, (int)(f * 100) % 100);
  return buffer;
}

 

 

Отправить ответ

avatar