Algo tengo (desde ayer), pero solo para un esclavo.
1.- Configuración de los xbee
Vamos a suponer que el xbee del xbee-xplorer es el coordinator.
Con el X-CTU le metes el firmware (suponiendo que sea XB24-B):
ZNET 2.5 COORDINATOR AT. VERSION 1047
Y lo configuras con DH=0 y DL=FFFF
Esto ultimo quiere decir que sus mensajes van a todos los elementos de la red.
Tambien puedes configurarlo con el SH y SL del esclavo
configura BD=9600 NB=0
Anota el SH y el SL de este xbee (coordinador)
Ahora el xbee del esclavo:
le metes el firmware: ZNET 2.5 ROUTER/END DEVICE AT VERSION 1247
configura DH y DL con SH y SL del coordinator
configura BD=9600 NB=0
En principio los xbee deberian enlazarse con esta configuracion.
Metele un sketch al arduino slave que escriba en el puerto serie e intenta visualizarlo con terminal de xctu
Recuerda que en el sketch tambien debes poner los 9600 baudios
Una vez que tengas al slave hablando al pc puedes pasar al siguiente paso
2.- libreria y sketch modbus rtu slave
bajate la libreria de http://sites.google.com/site/jpmzometa/arduino-mbrt/arduino-modbus-slave
e instalala para arduino.
Crea este skech, compilalo y subelo a tu slave:
#include <ModbusSlave.h>
/* First step MBS: create an instance */
ModbusSlave mbs;
/* slave registers */
enum {
MB_REG0,
MB_CTRL, /* Led control on, off or blink */
MB_TIME, /* blink time in milliseconds */
MB_CNT, /* count the number of blinks */
MB_REGS /* total number of registers on slave */
};
int asdf=1;
int regs[MB_REGS];
int ledPin = 13;
void setup()
{
/* the Modbus slave configuration parameters */
const unsigned char SLAVE = 1;
const long BAUD = 9600;
const char PARITY = 'n';
const char TXENPIN = 1;
/* Second step MBS: configure */
mbs.configure(SLAVE,BAUD,PARITY,TXENPIN);
pinMode(ledPin, OUTPUT);
pinMode(2,INPUT);
}
void loop()
{
asdf=digitalRead(2);
regs[MB_REG0]=asdf;
/* Third and las step MBS: update in loop*/
mbs.update(regs, MB_REGS);
if(regs[MB_CTRL]==1)
digitalWrite(ledPin,1);
else
digitalWrite(ledPin,0);
}
3.- configura mango
Eso lo explican bastante bien en: http://mango.serotoninsoftware.com/forum/posts/list/567.page
Aqui está explicado para una version antigua de la libreria
Usa el punto 11 en adelante y recuerda que usas 9600 baudios. Configura tambien el nombre del puerto
Una vez añadido el data source y el point, acuerdate de activarlos.
Vete a watch list y veras tu flamante punto en el arbol. pinchalo para añadirlo a la watch list
Ahora veras el valor del pin 2 en ese punto que acabas de añadir. muevelo de 0 a 5 voltios para ver 0 o 1.
Si va muy lento configura su frecuencia de actualización. eso se hace modificando los parametros que pusiste al crear el punto.
Bueno, ya me contarás
Un saludo
PD: busco gente para traducir mango. es muy sencillo