• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Nano Every i XBee Pro
#1
Serdecznie witam,
Podłączyłem do Arduino Nano Every moduł XBee Pro. Jak wskazać podczas inicjacji tego modułu, że pracuje on na Serial1 a nie Serial?
Dziękuję za pomoc.
 
Odpowiedź
#2
Opis problemu jest niekompletny, jaki schemat, kod, biblioteka i skąd. W jednej bibliotece może to się robi inaczej niż w innej, trudno zgadnąć co tam masz.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
(07-02-2025, 20:48)kaczakat napisał(a): Opis problemu jest niekompletny, jaki schemat, kod, biblioteka i skąd. W jednej bibliotece może to się robi inaczej niż w innej, trudno zgadnąć co tam masz.
Używam biblioteki XBee-Arduino library by Andrew Rapp z menadżera bibliotek 

Poniżej kod: 

#include "XBee.h" // biblioteka XBee

XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
Rx16Response rx = Rx16Response();

uint8_t payload[10]; // zmienna hex na dane do wysłania
uint16_t addr16 = 0x0000;

Tx16Request zbTx = Tx16Request(addr16, payload, sizeof(payload));


void setup() {
  // put your setup code here, to run once:
  XBee xbee = XBee();
  xbee.begin(57600);  // inicjalizacja XBee
  Serial1.begin(57600);  // inicjalizacja XBee

  payload[0] = 'O';
  payload[1] = 'K';
  payload[2] = ' ';

  zbTx = Tx16Request(addr16, payload, 3);
  xbee.send(zbTx);     // wysylanie potwierdzenia
}

void loop() {
  // put your main code here, to run repeatedly:

}

 
Odpowiedź
#4
Udało mi się uruchomić wysyłanie danych. Rozbudowałem program o odbiór danych (listing poniżej). Wysyłanie danych działa, sygnał z modułu XBee dochodzi do wejścia portu Serial1, ale program nie odbiera danych.

#include <XBee.h>

XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
// create reusable response objects for responses we expect to handle
ZBRxResponse rx = ZBRxResponse();
ModemStatusResponse msr = ModemStatusResponse();

//Rx16Response rx = Rx16Response();

uint8_t payload[20]; // zmienna hex na dane do wysłania

uint16_t addr16 = 0x0000;

Tx16Request zbTx = Tx16Request(addr16, payload, sizeof(payload));

int statusLed = 13;
int errorLed = 13;
int dataLed = 13;

void flashLed(int pin, int times, int wait) {
   
    for (int i = 0; i < times; i++) {
      digitalWrite(pin, HIGH);
      delay(wait);
      digitalWrite(pin, LOW);
     
      if (i + 1 < times) {
        delay(wait);
      }
    }
}

void setup() {
  pinMode(statusLed, OUTPUT);
  pinMode(errorLed, OUTPUT);
  pinMode(dataLed,  OUTPUT);
 
  XBee xbee = XBee();

  // Start the serial port
  Serial1.begin(57600);
  // Tell XBee to use Hardware Serial. It's also possible to use SoftwareSerial
  xbee.setSerial(Serial1);
 
  Serial.begin(9600);
  Serial.println("Start");

  flashLed(statusLed, 3, 50);

  addr16 = 0;

  payload[0] = 'O';
  payload[1] = 'K';  
  payload[2] = '!';

  zbTx = Tx16Request(addr16, payload, 3);
  xbee.send(zbTx);     // wysylanie potwierdzenia
}

// continuously reads packets, looking for ZB Receive or Modem Status
void loop() {
   
    xbee.readPacket();
//    Serial.println("readPacket");
    if (xbee.getResponse().isAvailable()) {
      // got something
      Serial.println("isAvailable");
      if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
        // got a zb rx packet
       
        // now fill our zb rx class
        xbee.getResponse().getZBRxResponse(rx);

        Serial.println("Dane");
       
        // set dataLed PWM to value of the first byte in the data
        analogWrite(dataLed, rx.getData(0));
      }
    }
}
 
Odpowiedź
#5
Przykład tak nie wygląda, zerknij do przykładów dołączonych do biblioteki, jeden jest pokazany np. tak:
Kod:
void setup() {
  Serial.begin(9600);
  xbee.setSerial(Serial);
  // start soft serial
  nss.begin(9600);
}

nie robi tu autor begin dla serial wykorzystywanego dla Xbee. Robi begin dla serial o nazwie nss, bo Serial oddał do Xbee.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#6
Dziękuję za pomoc. Układ zadziałał.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości