Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme

TEMA:

Un ROV de agua dulce, con mando de PS2 4 años 2 semanas antes #1561

Bueno hay mas de 20 post aquí desde que no entro en el foro. He leido mas o menos lo que te pasa, y me pregunto:
Si antes funciona, tiene que funcionar ahora, comentas que crees que ha sido desde que has montado el giroscopio:
1.- Has probado a quitarlo?
2.- Has probado a cargar un código mas antiguo, haber si funciona?
Supongo que lo habrás echo, pero si antes funcionaba tiene que funcionar, lo que no entiendo muy bien es como tienes alimentados los arduino, creo que dices que tienes uno conectado el usb del PC y el otro a una fuente externa, no?
Has revisado que estén las masas bien conectadas?
Algo se te esta escapando y creo que tiene que ser algo del montaje, porque si el código antes funcionaba ahora tiene que funcionar.
El siguiente usuario dijo gracias: asesorplaza1

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Un ROV de agua dulce, con mando de PS2 4 años 2 semanas antes #1565

Gracias DEA, por tu tiempo.

Pues si, el Arduino que tiene pinchados los sensores esta alimentado a 12 V, por una fuente de PC.
El Arduino que tiene pinchado solo el mando y algunos led, lo alimento con el USB, para ver si recibe los datos de los sensores.
y tengo un GND, directo de un Arduino a otro, y varios cables puentes entre los GND de los Arduinos y de las 3 placas de prototipos.
mas o menos como la foto adjunta



es mi primer Fritzing, y deja bastante que desear.

el caso es que en Arduino que tiene pinchado los sensores, si puedo ver en el Monitor Serie, todos los datos de los sensores, lo que no hay es comunicación entre Arduinos, porque en el llamado "Maestro", todos los valores están a cero.
He probado a quitar el giroscopio, completo, del programa y de la placa de prototipos, lo he vuelto a conectar.
he cargado programas antiguos, y si me da algunos datos.
Creo que es una tontería del programa, pero no la veo

Un saludo.
Adjuntos:

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Última Edición: por asesorplaza1.

Un ROV de agua dulce, con mando de PS2 4 años 2 semanas antes #1568

Si quitas el giroscopio te da algunos datos, pero no todos, no?
Entonces el problema no esta 100% en el giroscopio, no, o lo entendí mal.
El siguiente usuario dijo gracias: asesorplaza1

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Un ROV de agua dulce, con mando de PS2 4 años 2 semanas antes #1569

Si desconecto el giroscopio y quito su parte del programa, y quito también el Serial1, que me abre el segundo puerto de comunicación, para separar los datos que tienen que ir de un Arduino a otro, de los datos que tienen que ir al Monitor Serie, si puedo ver los datos de todos los sensores, en los dos Arduinos, y me hace caso al mando.

Si pongo el giroscopio y su parte del programa, si puedo ver todos los datos en el Arduino que tiene pinchados los sensores, incluidos los datos del giroscopio, pero no veo los datos en el Arduino que recibe los datos, hasta que no pasa un buen rato, y el sensor de infrarrojos va loco, cambiando de estado sin nada que le corte la luz, y los datos no son coherentes, bailan o varían sin explicación según pasa el tiempo (durante 5 minutos), y si me hace caso al mando pero mal, se retrasa mucho.

Y si pongo el giroscopio y pongo el Serial1, es cuando ni veo los datos, ni hace caso al mando.

Un saludo.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Un ROV de agua dulce, con mando de PS2 4 años 2 semanas antes #1572

Bueno vamos por partes:
Si tu usas dos puertos Serie del maga, en tu caso Serial y Serial1,en el puerto de depuración solo veras el Serial,para ver lo que hay en el Serial1, tendrias que usar Serial1.read(); meterlo en una variable y mandar al puerto Serial.

Por otro lado las librerías EasyTransfer son las encargadas de mandar y recibir los datos con estos comandos, por que veo:
ETin.begin(details(rxdata), & Serial1);
ETout.begin(details(txdata), & Serial1);
Entonces si al activar el puerto Serial1 el mando se vuelve lento en los sensores no van bien, algo hay en esas librerías que no funciona o eso creo, por que por lo demás todo lo veo bien.
O eso, o tienes un fallo aqui:
void loop ()
{

ETout.sendData (); // Envía el mensaje al puerto serie para el ROV Arduino
loopESC();
loopLuces();
loopVoltaje();
loopDHT22();
loopMPU6050();
loopSensorE18D80NK();
loopDS18B20();
loopSKU237545_I();
loopSKU237545_E();

}

Fíjate la de funciones que estas enviando por el puerto Serie, que se repite una y otra vez, ya que ese es el trabajo del Loop, ya de por si que este puerto no es de alta velocidad, supongo que son las librerias las que se tienen que encargar de enviar esos datos en un orden, mas bien con un intervalo de tiempo (msg).
Si no es asin lo tendrás que hacer tu, con millis o con maquina de estado....Como te dije en otro post.
Date cuenta que la velocidad que has puesto para el puerto es de 57600, si encima le quieres poner una Nextion, arduino no se va a enterar de la mitad de los datos que envíes, a no ser que las librerias EasyTransfer lo gestionen.

Conclusión de todo esto:
Habría que estudiar esas librerías bien, ver los ejemplos y leer el archivo README.txt que contiene y entenderlas por si falta algún comando o algo que hacer en el código.
Por que no veo nada raro en tu código.
El siguiente usuario dijo gracias: asesorplaza1

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Un ROV de agua dulce, con mando de PS2 4 años 1 semana antes #1573

Una pregunta,
Como tienes conectados los puertos series entre si:
RX con RX y TX con TX
o
RX con TX y TX con RX
El siguiente usuario dijo gracias: asesorplaza1

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Tiempo de carga de la página: 0.356 segundos
Gracias a Foro Kunena