Конвертация типов Arduino 8

  • Byte to Int

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

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

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

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

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

1
2
delay(200);//зависит от скорости передачи
while (Serial.available())Var = Var + (char)(Serial.read());
delay(200);//зависит от скорости передачи
while (Serial.available())Var = Var + (char)(Serial.read());
  • String to Int
1
2
3
int intVar;
String stringVar = "744";
intVar=stringVar.toInt();
int intVar;
String stringVar = "744";
intVar=stringVar.toInt();
  • String to Float
1
2
3
4
5
float floatVar;
char floatbufVar[32];
String stringVar = "744";
stringVar.toCharArray(floatbufVar,sizeof(floatbufVar));
floatVar=atof(floatbufVar);
float floatVar;
char floatbufVar[32];
String stringVar = "744";
stringVar.toCharArray(floatbufVar,sizeof(floatbufVar));
floatVar=atof(floatbufVar);
  • String to CharArray
1
2
3
String stringVar = "744";
char charBufVar[50];
stringVar.toCharArray(charBufVar, 50);
String stringVar = "744";
char charBufVar[50];
stringVar.toCharArray(charBufVar, 50);
  • CharArray to Byte
1
2
3
4
5
6
7
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 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
1
2
char[] chArray = "пример";
String str(chArray);
char[] chArray = "пример";
String str(chArray);
  • String to const char*
1
2
3
String stringVar=String('exemple');
char charVar[sizeof(stringVar)];
stringVar.toCharArray(charVar, sizeof(charVar));
String stringVar=String('exemple');
char charVar[sizeof(stringVar)];
stringVar.toCharArray(charVar, sizeof(charVar));
  • String to Unsigned long integer
1
2
3
4
char **pointer, *stringVar;
unsigned long unsignedVar;
stringVar = "324234g";
unsignedVar = strtoul(stringVar,pointer,10);//=324234
char **pointer, *stringVar;
unsigned long unsignedVar;
stringVar = "324234g";
unsignedVar = strtoul(stringVar,pointer,10);//=324234
  • Int to String
1
String stringVar =  String(intVar, DEC);
String stringVar =  String(intVar, DEC);
  • Int to HEX(String)
1
String stringVar =  String(intVar, HEX);
String stringVar =  String(intVar, HEX);
  • Int to BIN(String)
1
String stringVar =  String(intVar, BIN);
String stringVar =  String(intVar, BIN);
  • uint8_t to char
1
Serial.print((char)buf[i]);
Serial.print((char)buf[i]);

8 комментс для “Конвертация типов Arduino

  1. Ответить Jerk Мар 18, 2015 23:59

    Спасибо, ребят, помогла статья

  2. Ответить Marconi Янв 8, 2016 20:57

    Спасибо! Прям выручили!

  3. Ответить Дмитрий Апр 22, 2016 12:14

    А как преобразовать float в String?

  4. Ответить Ivan Июн 4, 2016 10:43

    добрый день уважаемые
    как преобразовать
    integer to char

  5. Ответить AngelLeo Июн 16, 2016 17:14

    Доброго времени суток уважаемые!
    Нужна помощь перевести char в unsigned int.
    В char хранится значение raw вида {4600,4400, 650,1600, 650,1600, 650,1600, 600,500, 650,450, 650,500, 650,450, 650,500, 600,1600, 650,1600, 650,1600, 650,450, 650,500, 650,450, 650,500, 600,500, 650,500, 600,1600, 650,500, 600,500, 650,500, 600,500, 650,450, 650,500, 600,1650, 600,500, 650,1600, 600,1650, 600,1600, 650,1600, 650,1600, 650,1600, 650} считанное из файла.
    это значение нужно перевести в unsigned int с сохранением целостности raw.
    Заранее спасибо…

  6. Ответить Саша Янв 27, 2017 09:08

    Никогда не говори спасибо заранее))) после предоплаты проблемы у покупателя а не у продавца))))

Добавить комментарий