Aviso

El foro está en modo de sólo lectura.

Interpretación de datos enviado por la Nextion al arduino (Detectar Botones)

Más
5 años 6 meses antes #1574 por Damian07
Un saludo para todos.

Ante el ultimo vídeo subido por Jose Luis pues le comente como se podía tener una mejor respuesta de lectura de botones es decir cuando se presiona un boton o push boton en la pantalla el arduino lo detecte , ya que sugeria que con la libreria oficial es tediosa y ocupa memoria, bajo mi criterio es desagradable..

En fin pues para hacer esta accion simplemente se envia un dato al ucontrolador o arduino,
como ejemplo : print "a", se podria usar solo esa condición si se trata de un botón pulsador, o push boton es decir que no tenga dos estados(Ahi es mas facil). Si es de dos estados como es en este caso de mi ejemplo seria asi:



en la imagen se visualiza como esta configurada y en que apartado esta definido.
Em este caso en.

Touch Press Event:

if(bt0.val==0)
{
print "a"
}


y en Touch Release Event:

if(bt0.val==1)

como se indica en la siguiente imagen.




de esta manera se estaria enviando por el puerto serial al arduino los datos, de forma simple y rápida, se puede verificar al dar debug al programa de la panalla simulando y ver los datos que envia, como se indica en la siguiente imagen:



bueno esto ahi ya esta eso lo pueden configurar tranquilamente a diferentes que se requieran.

ahora en el IDE de arduino el codigo seria asi:
Considerar que solo endico lo necesario. recuerdo que no estoy utilizando ninguna libreria, a excepcion la del puerto serial.



Como podran observar se condiciona que si se inicia el puerto serie se lee algún dato.

if(Serial.available()>0)
{
dato = Serial.read();
}
bien y lo demas como se indico las letras configuradas con a y b, podrian ser otras o mas botones pero este es el caso.

if(dato=='a'){
digitalWrite(luces_l,LOW); // aqui se desactiva cuando se tiene de dato la letra 'a'
}

if(dato=='b'){
digitalWrite(luces_l,HIGH); // aqui se activa cuando se tiene de dato la letra 'b'
}

considerar que "luces_l" simplemente es un pin configurado como salida del Arduino.


No usar delay ya que esto si no garantiza que detecte una actividad en pantalla.

Bueno eso es todo lo que puedo compatirles, para aumentar la velocidad de datos en este ejemplo yo uso 57600 la pantalla de nextion maneja hasta 115200 bauds.
Esto lo pueden configurar en cada pagina creada como se indica en la siguiente imagen:



Cualquier duda, estare respondiendo, esperando les sea de utilidad a futuro estare compartiendo este proyecto, final y aun no lo presento .

Saludos!!
Más
5 años 6 meses antes #1575 por Jose Luis
En primer darte las gracias por compartir tus ideas con nosotros.

Cuando hablabamos en los comentarios de youtube de no usar las librerias para fexibilizar y mejorar los tiempos de comunicacion entre la pantalla nextion y el arduino, yo creia que capturabas la trama proveniente de la pantalla y la interpretabas desde arduino. Por esa razon te decia que nos pegaras un trozo de codigo.
Al ver el sistema que usas, te cargas todo el protocolo de la pantalla y eso mejora notablemente el flujo de datos sin duda. Lo que antes pdoian ser facilmente, 15 o 20 caracteres entre los que envia la pantalla y los de validacion, ahora se quedan unicamente en uno o dos.

Es una forma mas que los usuarios pueden tomar en cuenta para algunos proyectos criticos. Justamente estoy haciendo yo uno, que como necesito usar interrpciones cada 10 milisegundos, no puedo usar la nextion ya que las tramas se pasan mucho de ese tiempo, en concreto, a 9600bps, creo que son sobre 200ms el tiempo que necesita la pantalla paa comunicarse con arduino.

Voy a probar usando el metodo que usas tu, a ver si consigo hacerlo funcionar asi.

Lo dicho, gracias por compartir con nosotros tu forma de comunicar arduino con la pantalla.

Tienes una cervecita pagada (Estrella Galicia que hay que tirar por la tierra) :D
Más
5 años 6 meses antes #1577 por Jose Luis
De todas formas, podias colgar el fichero de la nextion y el del arduino en un fichero zip, para que el que desee pruebe directamente la diferencia de velocidad a la hora de procesar los datos que vienen de la pantalla con respecto a usar librerias.

Gracias de antemano.
Más
5 años 6 meses antes #1578 por Damian07
Gracias por la cervecita . :D

Por ahora no les puedo subir el código ni el fichero, como les comentaba aun no lo presento y es mi proyecto final(Instituto), apenas lo presente lo subiré. Espero su comprensión.

Cualquier duda estoy para responder.

Un Saludo!
Más
5 años 6 meses antes #1580 por Jose Luis
Tiempo de carga de la página: 0.249 segundos
Gracias a Foro Kunena