У меня есть 2 Arduino и 2 xbee.Я посылаю данные 2 датчиков с Arduino 1 (маршрутизатор) на Arduino (координатор): На координаторе я получаю беспроводные данные от этих 2 датчиков (от маршрутизатора) отлично.
Поток данных выглядит примерно так:
20.1324325452924 делится на:
-первый датчик (температура): 20.1324325452
-секундный датчик (газ): 924
Myцель состоит в том, чтобы эти 2 значения представляли собой две переменные, которые постоянно обновляются, а затем передают эти значения остальной части программы, чтобы сделать что-то вроде печати на ЖК-дисплее или что-то еще:
температура = 20.1324325452
gas = 924
Мне удалось разделить эту исходную строку, которую я получаю для последовательного (20.1324325452924)
, на 2 переменные, но значения из этих 2 переменных не обновляются, как в исходномстрока (при изменении значений датчика):
Мой код:
LiquidCrystal lcd(12,11,10,9,8,7);
String temperature;
String gas;
String readString;
char IncomingData[13];
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0)
{
char IncomingData = Serial.read();
readString += IncomingData ;
temperature = readString.substring(0, 13); //get the first 13 characters
gas = readString.substring(13, 16); //get the last 3 characters
Serial.print(IncomingData); //here I have my string: 20.1324325452924 wich is updating properly when I have sensor values changes
// Process message when new line character is DatePrimite
if (IncomingData == '\n')
{
Serial.println(temperature);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.write("T:");
lcd.print(temperature);
delay(500);
temperature = ""; // Clear DatePrimite buffer
Serial.println(gaz);
lcd.begin(16, 2);
lcd.setCursor(0,1);
lcd.write("G:");
lcd.print(gas);
delay(500);
gaz = ""; // Clear DatePrimite buffer
}
}
}
Выход из серийного номера:
20.1324325452924
20.1324325452
924
Первая строка обновленакогда я получаю новые данные датчика, но следующие 2 остаются неизменными каждый раз.Я застрял на несколько дней, я не знаю, чтобы сделать эту работу.Все, что мне нужно сделать, это разделить исходную строку, которая содержит данные от 2 датчиков на 2 переменные, которые постоянно обновляются, и затем передать эти значения остальной части программы, чтобы сделать что-то вроде печати на ЖК-дисплее.
Кто-нибудь знает, как заставить это работать?