modbus para comunicar mkr con otros arduinos

Avatar de Usuario
Sigmundfreud
Mensajes: 240
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: modbus para comunicar mkr con otros arduinos

Mensaje por Sigmundfreud » Mié Jun 19, 2019 10:28 am

sigo escribiendo para ir comentando los pocos avances,,
el codigo funciona bien, he probado dos nanos conectados directamente del tx al rx y funciona bien, el tema es cuando lo intento comunicarlos a traves del pcb con los 6 RS485 que no funciona, asi que voy acercándome al problema..

Avatar de Usuario
Sigmundfreud
Mensajes: 240
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: modbus para comunicar mkr con otros arduinos

Mensaje por Sigmundfreud » Mar Jun 25, 2019 5:43 pm

sigo con el tema que me esta volviendo loco a ver si alguien puede arrojar un poco de luz

voy por pasos y espero que se entienda.

para comunicar entre los dos nano no me ha hecho falta ninguna libreria, basicamente el master envia una secuencia

Código: Seleccionar todo

void funcion_enviar(){

  Serial.print("I"); //inicio de trama
  Serial.print("100");//100 quiere decir alarma on
  Serial.print("F"); //fin de trama}
y el arduino nano lo recibe esta esta manera

Código: Seleccionar todo

 if(Serial.available())
  {
    if(Serial.read()=='I') //si recibimos A el mkr envia datos de los estados de la alarmq
    {
       int dato=Serial.parseInt(); //recibimos el valor de una variable int
     if(dato==mkr_alarma_on) //Si el valor es 1000 alarma on
      {Alarmaon=true;}   // activamos circuito alarma on
     
      else  if(dato==mkr_alarma_casa) //Si el valor es 101 alarma casa
      {Alarmacasa=true;}   // activamos circuito alarma casa
      
      else if(dato==mkr_alarma_off) //Si el valor es 102 alarma off
      {Alarmaoff=true;}   // activamos circuito alarma off
      
     if(Serial.read()=='F') //Si el fin de trama es el correcto
      {
      Serial.println ("final de los datos recibidos del mkr");
    }
  }
  delay(10);
  }

de esta forma funciona perfecto y cada emision de datos es recibido correctamente.

Ahora viene cuando lo matan.........

en el mkr no soy capaz de recibir nada por el monitor si no es con esta libreria #include <ArduinoRS485.h>. Dicha libreria está pensada para usar la shield arduino rs485.
Si abro el "ino" que viene de ejemplo para recibir me lee perfectamente los datos enviados del nano, pero el problema es que no sé cómo guardar los datos en una variable para poder trabajar con ellos. El ejemplo que tiene para ver los datos en el monitor es:

Código: Seleccionar todo


void loop() {
  if (RS485.available()) {
    Serial.write(RS485.read());
  }
}


una vez leidos estos datos he probado infinidad de cosas para guardarlos pero me ha sido imposible. He probado a enviar desde el nano en vez de I100F solo un número entero como "100" pero aún así no se guarda de la misma forma que lo hago sin libreria.


Otro problema que me pasa es que solo consigo comunicar dos arduinos con los rs485, si pongo tres (dos nanos y el mkr) el master envia pero ninguno recibe. Por lo que he leído si se ponen más de dos rs485 hay que eliminar la resistencia de 120 homios (R7) de los rs485 intermedios, ya que esta resistencia es la que marca el principio y final de los dispositivos.
Screenshot_2019-06-25-14-15-43-133_com.android.chrome.png
Screenshot_2019-06-25-15-58-59-730_com.android.chrome.png
alguien puede iluminarme un poco el camino!!!!!!?????
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.

Juan Ramon
Mensajes: 241
Registrado: Mar Feb 12, 2019 7:52 pm
Ubicación: Alicante

Re: modbus para comunicar mkr con otros arduinos

Mensaje por Juan Ramon » Mar Jun 25, 2019 6:46 pm

Hola Santi, según me parece entender en el MKR1000 no puedes enviar ni recibir.
No se si lo estarás haciendo bien, a mi al principio me costo unos cuantos dolores de cabeza.
Te comento, el MKR1000 tiene el puerto (Serial) USB con el que puedes monitorizar con el monitor serie de arduino.
Las salidas TX y RX pertenecen al puerto (Serial1)

En cuanto a las resistencias, ya te mostrare como lo tengo hecho.
El circuito lleva las de 120 Ohmios para el principio y final, las de 470, 560 ó 680 Ohmios pueden variar según distancias.
Pero para las pruebas no creo que te den problemas esos módulos sin modificar nada en ellos.
Juan Ramón.

Avatar de Usuario
Sigmundfreud
Mensajes: 240
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: modbus para comunicar mkr con otros arduinos

Mensaje por Sigmundfreud » Mar Jun 25, 2019 8:05 pm

En el mkr con la librería sí que puedo enviar y recibir, sin ella no. El tema es que no sé guardar en la variable lo que recibo a traves de la librería.

Las pruebas las realizó con un mkr zero que está a 10cm del nano.

A mi también me esta dando muchosssssss dolores de cabeza

Gracias

Avatar de Usuario
Sigmundfreud
Mensajes: 240
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: modbus para comunicar mkr con otros arduinos

Mensaje por Sigmundfreud » Mié Jul 10, 2019 4:27 pm

Bueno sigo con el tema del modbus.
Como me he cargado el mkr zero y tengo que comprar otro he pensado en comprar también el mkr rs485 shield asi llego a los 50€ en mouser y me ahorro los portes, pero antes de comprarlo hay cosas de este shield que no veo claras y me gustaría preguntar.
Según los datos que muestra de los pines pone lo siguiente:

A4. RE.
A5 DE.
6 RXP. Reserve
7 TXP
13. Rx. Reserve
14. Tx. Reserve
Screenshot_2019-07-08-21-23-27-571_com.android.chrome.png
Y en el esquema se muestra esto
Screenshot_2019-07-08-22-29-34-406_com.google.android.apps.docs.png
Esto quiere decir que usa todos estos pines?

El 13, 14 y otro para hacer cambio (Re, De) "que en este caso pone dos pines, no sé porqué". Pero el 6 y 7 sabéis para qué son?
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.

Juan Ramon
Mensajes: 241
Registrado: Mar Feb 12, 2019 7:52 pm
Ubicación: Alicante

Re: modbus para comunicar mkr con otros arduinos

Mensaje por Juan Ramon » Mié Jul 10, 2019 8:21 pm

Hola Santi, esas dudas que comentas ya las tuve yo en su día y por eso descarte el modulo.
Al parecer trabajan con unas determinadas librerías las cuales tienen definido unos pines
Según me parece ver, en esta librería SimpleModbusSlaveMKR-master
Special version for Arduino MKR series and MKR RS485 Shield
Using Serial1 (13/14) and RE (A5) / DE (A6)

Supongo que dependiendo de la librería puede variar
Juan Ramón.

Avatar de Usuario
Sigmundfreud
Mensajes: 240
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: modbus para comunicar mkr con otros arduinos

Mensaje por Sigmundfreud » Jue Jul 11, 2019 10:21 am

Pues entonces descartado porque si pierdo tantos pines para este sheild y otro o otros dos para el ethernet me voy a quedar sin ninguno.

Gracias

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados