Xbee pro series 2b и TGS 2602 - полученное значение неверно и не меняется

у меня есть arduino uno, xbee pro series 2 b и voc-датчик: tgs 2602. я хочу отправить значение сопротивления датчика через xbee на последовательный монитор от arduino. tgs2602 --> xbee -- xbee --> xbee Shield --> Arduino Uno

Я настраиваю свой первый xbee как маршрутизатор в AT Modus с частотой дискретизации 1000 мс и своим координатором в API. эскиз, который я использовал, выглядит так:

//Remote XBee:AT, Base XBee:API
float voc;
void setup(){
Serial.begin(9600);
};

void loop(){

if(Serial.available() >=21){ //Makesure the frame is all there
if (Serial.read()== 0x7E){ //7E is the start byte
for (int i = 1; i<18; i++) { //Skip ahead to the analog data
 byte discardByte = Serial.read();

}
int analogMSB = Serial.read(); // Read the first analog byte data
int analogLSB = Serial.read(); //Read the second byte
int analogReading = analogLSB + (analogMSB * 256);

float volt = analogReading/1023.0 * 5 ;    // Rechne die von ADC ausgegebenen Werten in Volt um
float Rs1 = 10*(5-volt)/volt;        //Rechne den Widerstandswert


Serial.println(Rs1);
}
}
}

я взял этот код в примере на ютубе.

Данные, которые я получил в последовательном мониторе, - 5105. Это значение не меняется, даже когда я касаюсь датчика.

Почему? Я делаю что-то неправильно.

Мне нужна ваша помощь.

Спасибо


person user3559628    schedule 28.04.2014    source источник
comment
Возможно, вы захотите посмотреть тип кадра и убедиться, что он правильный. XBee будет отправлять вам кадры состояния в дополнение к вашим аналоговым показаниям. Возможно, выгрузите весь кадр, чтобы убедиться, что он правильный, и вы правильно его анализируете, и/или выгрузите считанные значения LSB и MSB.   -  person tomlogic    schedule 30.04.2014
comment
Привет, томлогик, я сделал это!! DiscardByte = 0 18 146 0 125 51 162 0 64 173 23 24 85 236 1 1 0.   -  person user3559628    schedule 30.04.2014
comment
146 = 0x92, так что это выборка данных. Что такое analogMSB и analogLSB? Они различаются? Подключен ли датчик к первому аналоговому входу (A0)?   -  person tomlogic    schedule 30.04.2014
comment
Hi tomlogic, AnalogMSB = 2, AnalogLSB = 0, они не меняются. Датчик подключен ко 2-му аналоговому входу. (извините за поздние ответы)   -  person user3559628    schedule 05.05.2014
comment
Привет, я использую коммутационную плату с регулировкой xbee, и я хочу знать, может ли проблема быть в напряжении.   -  person user3559628    schedule 05.05.2014
comment
Возможно, вам придется настроить ATD1 как аналоговый вход (установите его на 2), а ATD0 как отключенный, если вы используете 2-й аналоговый вход. Или переместите датчик на первый аналоговый вход.   -  person tomlogic    schedule 05.05.2014


Ответы (1)


Убедитесь, что вы правильно все настроили для аналогового входа. У Digi есть хорошее руководство по настройке аналоговый вход с потенциометром. Выполните эти шаги и получите что-то, что работает, а затем постепенно вносите изменения, пока вы не читаете свой датчик на Arduino.

Например, если у вас есть потенциометр, работающий на XBee и ПК, подключите его к Arduino и убедитесь, что показания правильные. Затем замените потенциометр вашим датчиком и посмотрите, верны ли показания.

person tomlogic    schedule 05.05.2014
comment
Я использовал датчик без xbee, и он работает очень хорошо. Но с xbee я получаю неправильные значения. Может быть, это напряжение, я попробую использовать еще какой-нибудь резистор и разделить напряжение. учебник, которому я следовал, находится на youtube из туннеля (чтение аналоговых данных с удаленного xbee) - person user3559628; 06.05.2014