Как Arduino будет общаться по беспроводной сети через XBee?
Я использую один XBee S2, настроенный как координатор API, подключенный к моему ноутбуку, и один XBee S2, подключенный к Arduino Uno, который настроен как маршрутизатор AT. Я хочу сгенерировать сигнал тревоги на LabVIEW, так как использовал VISA для последовательной связи.
#include <SoftwareSerial.h>
int buttonState1 = 0;
SoftwareSerial XBee(2,3); // RX, TX
int pin=13;
void setup() {
XBee.begin(9600);
Serial.begin(9600);
pinMode(2,INPUT);
}
void loop() {
if (Serial.available())
buttonState1 = digitalRead(2);
if (buttonState1 == HIGH) {
// включить СВЕТОДИОД:
Serial.println(1);
}
/*else
{
Serial.println(2);
}*/
else {
// выключить СВЕТОДИОД:
Serial.println(0);
}
delay(100);
}
но я не получаю никакого ответа.
Что может быть первопричиной этого и как мне это диагностировать?
@aqdas khattak, 👍-1
Обсуждение2 ответа
Контакты 2 и 3 являются аппаратными последовательными контактами. Вы не можете/не должны прикреплять к ним контакты программного обеспечения.
Короче говоря, ваш программный XBee никогда не используется и использует те же контакты аппаратного последовательного.
Чего вы на самом деле пытаетесь достичь? Мне трудно это понять. Хотя. Сначала вы должны проверить, работает ли ваше соединение.
Какие устройства у вас подключены к arduino?
Это [Arduino] <-> [XBEE] <-><-> [ПК]?
Проверьте свое соединение, используя приведенный ниже код
int incomingByte = 0; // для входящих последовательных данных
void setup() {
Serial.begin(9600); // открывает последовательный порт, устанавливает скорость передачи данных на 9600 бит/с
}
void loop() {
// отправляйте данные только тогда, когда вы получаете данные:
if (Serial.available() > 0) {
// считывание входящего байта:
incomingByte = Serial.read();
// скажи, что у тебя есть:
Serial.print("Я получил: ");
Serial.println(incomingByte, DEC);
}
}
Источник
Нет, на UNO аппаратные последовательные контакты равны 0 и 1. 2 и 3-это контакты прерывания, и если оператор не использует внешние прерывания, он может использовать их в качестве мягкого последовательного., @Delta_G
Используете ли вы XBee shield или напрямую подключаете его к Arduino и используете ли связь точка-точка между двумя XBees?
Для получения и отправки данных между двумя XBE они должны быть настроены в режиме "точка-точка". Во-первых, протестируйте их, чтобы убедиться, что они получают данные через это сообщение.
Если да, то проблема будет на вашем LabVIEW VI, потому что ваш код Arduino, похоже, в порядке
- Как работает последовательная связь на Arduino?
- Не могу заставить работать software serial
- AT-команда не отвечает на последовательный монитор
- Arduino Преобразование std:string в String
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Не нашел датчик отпечатков пальцев :( Arduino Mega 2560 Adafruit Fingerprint Sensor
вы никогда не использовали серийный номер XBee, в то время как вам полагается считывать с него данные., @goddland_16