Я попытался протестировать систему, и я не уверен, связана ли проблема с xbee, кодом передачи или кодом получения. Прежде чем опубликовать свой код, я объясню, что мы делаем с сигналами. У нас есть три аналоговых сигнала, которые будут последовательно отправляться через один xbee с использованием arduino и xbee Shield. Мы хотим отправить эти сигналы на принимающий xbee, где Arduino будет выводить эти сигналы для подключения к третьему Arduino через провода, которые будут использоваться в программе Simulink. Мы используем arduino mega для передающей стороны и arduino uno для принимающей стороны. Мне сказали, что мне нужно сделать последовательную потоковую передачу, но я не уверен, как это делается. Я понимаю, что xbee и arduinos оцифровывают сигналы, но мы надеемся получить сигнал, очень похожий на аналоговые сигналы, которые мы передаем. Мы очень признательны за любую помощь!
Вот как я настроил свои xbees (серия 1) в режиме AT:
Передача Xbee:
Канал: 10
Pan id: 1234
MY: 10
DL: 11
Прием Xbee:
Канал: 10
Идентификатор панорамы: 1234
МЫ: 11
DL: 10
передача кода Arduino:
void setup() {
Serial.begin(9600);
}
void loop() {
// read the input on analog pins
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);
int sensorValue3 = analogRead(A2);
// print out the value you read:
Serial.println(sensorValue1);
Serial.println(sensorValue2);
Serial.println(sensorValue3);
delay(1);
}
Получение кода Arduino:
int received1=8;
int received2=9;
int received3=10;
void setup(){
pinMode(received1, OUTPUT);
pinMode(received2, OUTPUT);
pinMode(received3, OUTPUT);
Serial.begin(9600);
}
void loop(){
if(Serial.available() )
{
byte output1 = Serial.read();
byte output2 = Serial.read();
byte output3 = Serial.read();
digitalWrite(received1, HIGH);
digitalWrite(received2, HIGH);
digitalWrite(received3, HIGH);
}
}