Конвертация типов переменных в среде 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);
int to char не работает
Float to char НЕ РАБОТАЕТ