Конвертация типов переменных в среде 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;
}

Второй вариант:

char buffer[15];
dtostrf(floatVar, 5, 2, buffer);
Serial.println(buffer);

IP адрес в текст

char s[16];
sprintf(s, "%d.%d.%d.%d", Ethernet.localIP()[0], Ethernet.localIP()[1], Ethernet.localIP()[2], Ethernet.localIP()[3]);
Serial.println(s);
Подписаться
Уведомлять
guest

3 комментариев
Старые вначале
Новые вначале По голосам
Межтекстовые Отзывы
Посмотреть все комментарии
Виталий
Виталий
2 лет назад

int to char не работает

Виктор
Виктор
10 месяцев назад

Float to char НЕ РАБОТАЕТ

Anton
Anton
5 месяцев назад

Здравствуйте.
Очень толковая статья.

3
0
Поделиться своими мыслямиx