Если вы получаете что-то более последовательное, его символы ASCII, так что вы конвертируете куски символов в любой нужный вам формат:
unsigned long my_long = 0;
char inputChunk[] ="2273543"; // you fill that from serial
my_long = strtoul(inputChunk, NULL, 10);
Serial.print(my_long);
readings[0] = my_long;
Поскольку вы не привели пример того, как данные поступают по последовательному или как различать разные джонки (это \ n 'или какой-то другой терминатор), это просто базовый c howto для ASCII.
Когда вы экспериментируете с \ n и ASCII, вот пример:
unsigned long my_long = 0;
char inputChunk[16] = {'\0'}; // size big enough you fill that from serial
uint8_t strIndex = 0;
uint8_t longCounter = 0;
while (Serial.available()) {
char readChar = Serial.read();
if (readChar == '\n') {
my_long = strtoul(inputChunk, NULL, 10);
break;
}
else {
inputChunk[strIndex] = readChar;
strIndex++;
inputChunk[strIndex] = '\0]; // Keep the array NULL-terminated
}
Serial.print(my_long);
readings[longCounter] = my_long;
longCounter++;
if (longCounter>=64) Serial.print("readings[] is full")
}