hola muy pero muy agradecido por compartir tu conocimiento, yo estoy recien aprendiendo el lenguaje de programación de arduino muchas gracias desde Chile
Cambatronics Online buenas noches, excelentes tutoriales, acerca del manejo de las pantallas nextion, saludos desde ECUADOR, podrias hacer algun tutorial mas adelante con un GPS seria muy interesante. gracias
Pues tomamos nota de tu sugerencia. Toda persona que quiera participar con nosotros puede hacernos llegar material para hacer los videos. Si alguno tiene un gps que no use, seria de gran ayuda que nos lo hiciera llegar. Asi haríamos las cosas mas rápido, ya que no tenemos disposición económica para poder comprar todos los componentes que nos solicitáis.Un saludo.
Muy bueno el tutorial. Estoy pasando de la interfaz al código y como apunte; para que funcione bien, no deberíamos tener ningún programa del interfaz HMI precargado con ningún loop o animación; si no, se ejecutará el código de memoria sobre el nuestro. Lo digo por experiencia, que he estado un buen rato. :P Gracias y un saludo
Que tal Cambatronics excelentes videos, te agradezco por compartir con nosotros todo este material. Oye una duda, trabajando con las librerías oficiales como se pondría la página de inicio y posteriormente que pase a la página principal? Espero puedas apoyarme. Saludos
Depende como trabajes, a mi me gusta que el trabajo lo lleve siempre el arduino. Para hacerlo desde la nextion, crea la pagina de bienvenida en la pagina cero, programa un clock al tiempo que quieras y cuando se cumpla el tiempo, que te lleve a la pagina 1. Para cambiar de pagina es tan simple como poner Page X, siendo x la pagina a la que quieres ir.
Cambatronics de antemano gracias por tus comentarios... Para hacer esto desde arduino con las librerías oficiales es posible? Me podrías orientar? Saludos
@@enriquerodriguez4278 Con el arduino y las librerias oficiales mira el video que le dedico a como cambiar de pantalla y solo has de, despues de que arranque el arduino, temporizar el tiempo que quieras y le mandas cambiar de pantalla. Lo haces con dos sentencias de codigo y una es un delay(). mas facil no puede ser.
No, los componentes de los que hablo son justamente componentes creados en la pantalla, es decir, un slider, un switch, una variable en nextion, etc. Si pones lo que has puesto tu, primero tienes que darle una variable de arduino donde guardar eso, y si tiemes una variable creada con ese nombre en nextion, te devolvería el valor que tenga.
Cambatronics Online gracias. Esa es la idea. Imprimir variables del arduino en pantalla. Y al contrario, dar valores a las variables desde la pantalla. Por cierto, ¿cómo puede usar arduino el reloj del nextion para un temporizador?
buenos días, quiero consultar algo, en la actualidad estoy haciendo un proyecto de una interfaz gráfica y quiero saber con agregar la librería de una pantalla tft, esta pantalla puede hacer cual quier imagen que se le envié para que transmita o se tiene que agregar a la librería todas las imágenes que se vayan a transmitir, Ejemplo: si quiero que ella transmita imágenes de google maps de rutas, solo con llamar la librería en el código esta las puede reproducir ?
Este tipo de pantallas, pese a que tiene algun comando grafico, esta pensada para incluirle tu cuando complilas el programa, todas las imagines que vas a usar. De esa forma, al tenerlas precargadas, solo tienes que llamar a la que quieras usar. Si lo que quieres es tener una tft al estilo clasico, tendras que usar una de otro tipo.
hola, queria preguntar como puedo usar el serial1 del arduino mega para comunicarme con la pantalla nextion ya que solo me funciona configurandolo en Serial en el nextionconfig.h
Muchas gracias por el video, pero me queda una duda: Estoy usando la libreria Nextion.h, tengo un objeto number (n0) en la hmi y quiero poder enviar su valor al arduino uno, para poder hacer calculos con el... me puedes ayudar?
Aunque la librería se llame Nextion.h puede ser librerías de diferentes tipos. Aquí por ejemplo trabajamos con unas que denominamos no oficiales y otras que son las del fabricante de la pantalla (itead): Dependiendo la librería que uses, el comando puede cambiar. Si usas las librerías de itead, yo voy poco a poco indagando, y aun no llegue al punto que deseas, ya que yo por ahora mando los datos en forma de string, que encima en mas fácil, ya que como sabras con números no te permite enviar decimales y tendras que buscar un apaño. Si usas las librerías no oficiales, de las cuales aquí tenemos una especie de curso con ellas (hicimos 5 videos sobre ellas) lo harias enviando : setComponenValue(Id, valor);
Hola :) Compré una pantalla Sain Smart 4.3'' TFT y para la conexión con Arduino veo en diferentes páginas donde utilizan el shield... mi pregunta es si es indispensable para la conexión? Intente conectar la pantalla TFT directamente en el Arduino Mega pero no estoy segura de si esta bien... Gracias!
No conocía esa pantalla, pero al preguntar he mirado. El tema es que esa pantalla tiene una conexión de 40 pines para su funcionamiento. Sin la shield tendras que cablear eses 40 pines a mano. Supongo que por eso usan una shield para no tener que cablear todos los pines uno a uno. pero ya te digo que no tengo experiencia con esa pantalla.
buen dia estoy tratando de realizar un proyecto con dos arduinos un arduino uno y un nano ambos con patallas nextion y nrf2401 que transmitan datos de sensores como temperatura y humedad tenia este trabajo con una pantalla lcd y transmitia al monitor serial de arduino pero al querer agregar las pantalla nextion los modulos nrf2401 dejan de transmitir y no tengo idea el por que no se si sea problemas por los seriales, tendras alguna informacion sobre como lo puedo realizar? gracias
No he trabajado aun con modulos nrf, pero los datos que das son muy genericos y no creo que nadie asi se haga una idea. Puedes abrir un tema en nuestro foro (www.cambatronics.com) y alli subir el codigo de los arduinos y el de la pantalla nextion para que el que lo desee le eche un vistazo y te pueda decir su opinion.
@@CambatronicsOnline es que me respondi solo. queria desde una web, controlar valores como temperatura maxima y cosas asi, pero con lo puedo hacer por la pantalla, por lo que queda afuera mi pregunta. Se entiende ahora?
Para controlar desde una web, hay una seccion dedicada a esp8266 donde hacemos algunas cosillas como encender y apagar leds, abrir portales de garajes, eh incluso, hay un video donde mediante un esp8266 enciendo desde internet un huevo vibr.ador ( y no, no es coña, lo digo en serio). Todos eses videos estan publicados en mi canal del youtube. Pero resumiendo, para hacer eso que quieres, haria un servidor web con un esp8266 y no necesitas pantalla. lo haces todoa a traves de la red wifi de tu casa.
no encuentro como comentar la libreria o el fichero "nextion.h" que menciona porfavor ayuda y cuando pongo esto"Nextion myNextion(nextion,9600);" sales esto "exit status 1 'nextion' was not declared in this scope" ayuda porfavor
Este ya es un video muy antiguo. Es mejor que abras un nuevo tema en nuestro foro y alli plantees las preguntas aportando el codigo y demas, ya que hace tanto tiempo que no me acuerdo.
libreria comentada o sin comentar me dice que software serial no existe, si comento la linea 47 apenas pongo "Nextion myNextion(nextion,9600);" me dice q no existo si compilo solo la libreria no me da error y compila osea que la libreria si esta cargada
No puedes comentar la libreria de software serial sino no crearas la comunicacion con la pantalla. Si haces el favor crea un tema en nuestro foro (www.cambatroncis.com) y sube una captura de pantalla con los errores. A ver si podemos ayudarte.
Hola, estoy buscando la manera de conectar un touchscreen resistivo a Arduino es el puro touch esque me interesa hacer una máquina que equilibra una bola, espero su ayuda :3
Yo creo que los touch resistivos se tienen que conectar a entradas analogicas y necesitan una calibracion. Puedes abrir un tema nuevo en nuestro foro y asi podras subir la info para que se te pueda ayudar, Un saludo.
Si, la verdad es que yo con estas librerias uso el arduino uno y hay mas gente que a tenido problemas para hacerlo funcionar con el mega. has de editar las librerias e indicarle que vas a usar el serial2 como puerto de conexion con la nextion.
Yo te recomendaria pasar a las librerias oficiales, que esas vienen configuradas para usar con mega, o bien compraria un arduino uno chino que vale poco mas de 3 euros para practicar.
hola que tal ya resolvi el problema de la comunicacion estoy avanzando en mi proyecto; en mi pantalla estoy usando dos botones: b0(+), b1(-),n0,n1; escribi en b0: n0.val++ y en b1: n0.val-- y n0 incrementa o disminuye segun el boton que presione y n1 debe recibir datos de un potenciometro; mi pregunta es como recivir los datos de n0 en mi arduino y comparar con n1 para activar o apagar un led el otro problema es que mi arduino manda los datos de forma correcta al puerto serie pero la pantalla no identifica los datos sabras por que se genera este problema, estoy usando el puerto serie por hardware y uso este codigo: void loop() { int pval1 = analogRead(A0); // lee la entrada sobre el pin 0 Analogica int pot1 = map(pval1,0,1023,0,100); Serial.println("n1.val="); Serial.println(pot1); // imprime a la salida el valor de su lectura sobre el pin 0 ff(); delay(500); } // Fin Loop //0xff void ff(){ Serial.write(0xff); Serial.write(0xff); Serial.write(0xff); }
No l veo nada raro. Haz una cosa, abre un nueva tema en nuestro foro (www.cambatronics.com ) y allí en un zip añademe el programa de la pantalla y el código del arduino, y asi lo pruebo yo para ver que falla que tiene que ser una tontería que se nos escapa.
Pues yo probaría a usar la el puerto virtual, que yo creo que te va compilar sin problemas, y entonces esta claro que seria un problema con la librería. Yo como no uso arduinos con una solo puerto hardware no he tenido ese problema.
Gabriela yo conecte el rx de la nextion a pin 45 y el tex de la nextion al pin 11 y funcionan ahora quiero hacer funcionar dos pantallas y me la veooo muyyyy mal mira asi es como me queda la conexion en el codigo SoftwareSerial nextion(11, 45);// Nextion TX to pin 10 and RX to pin 45 of Arduino Nextion Nex(nextion, 9600); //create
Buenos dias ¡¡¡ puede ser cualquiera de los pines PWM para transmitir informacion a la nextion, pero para recibir de la nextion solo los pines 10 y 11, no lo se porque ¡¡ pero estoy probando y son con los unicos que tengo respuesta de esta
hola jose luis buenas noches, de antemano gracias por los video tutoriales y el tiempo que te das para darnos ayuda, bueno estoy usando un codigo con los comandos de la libreria del video, pero tengo un problemita estoy usando arduino mega me funsiona todo pero la pantalla me envia al arduino una trama que no reconoce por ejemplo, el arduino me enciende un led, la pantalla deberia enviar esta trama "0x65 0x01 0x04 0x1 0xff 0xff 0xff" , pero la pantalla envia esta "E 0xff 0xff 0xff" cual seria el motivo por lo que la pantalla envia esta trama con todos los botones y el arduino no la reconoce, conecto la pantalla por via serie y en el monitor serie de "arduino ide" sale esa trama, pero en el software de de nextion si sale la trama correcta
No puede darte el valor "E" por que son datos hexadecimales. Lo mejor es que abras un tema en nuestro foro (www.cambatronics.com), alli podras subir en un fichero rar el codigo que usas par arduino y el de la pantalla. Asi los cargo yo y veo si me da lo mismo que a ti o si veo donde esta el problema.
hola jose luis buenas noches logre la comunicasion entre la pantalla y el arduino, pero tengo un problema que no tome en cuenta, los pines 2,3,4,5,6,7,22,23,24,25,26,27 los estoy usando como entradas (INPUT) y el ARDUINO MEGA, no hace nada o solo funsionan como entradas? gracias
+azezinosilente El mega tiene mas fe un puerto por hardware. Lo mejor es modificar el codigo del uno y no usar exactamente el mismo. Siempre que hay mas fe un puerto por hardware es mejor usar esye y no el virtual.
hola buenas noches revisado encontre tu comentario, he resolviste el problema de comuncacion del arduino mega, tengo el mismo problema deberia enviar esto: 65 1 4 1 ffff ffff ffff pero envia al arduino esto E ffff ffff ffff, no entiendo el problema
Depende si utilizas las librerias oficiales o no. Con las librerias no oficiales solo has de poner myNextion.sendCommand("page 1"); Y cambiaria a la pagina 1.
ola amigo, gracias pelo video. soy del Brasil, estoy me esforçando para aprender. onde encontro essas e outros commands do nextion para estudar mais ? qual a diferença e qual melhor de usar... txt_temp.setText(buffer) ou setComponentText(txt_temp, buffer)???
En este video usamos librerias no oficiales. La documentacion la tienes en las propias librerias. Tambien tienes unas librerias oficiales que proporciona el fabricante.
hola modifique la libreria para arduino mega pero me arroja error este es mi codigo /* * Control de Ocho relays mediante Arduino Nano y pantalla NEXTION */ #include #include #define SI !1 #define NO !0 #define nextion Serial1 byte rele[] = {4,5,6,7,8,9,10,11}; // Salidas digitales a los Relay 1,2,3,4,5,6,7,8 const int ledPin = 13; // the number of the LED pin const byte ReceivePin = 0; const byte TransmtPin = 1; int i; int recv; int trxv; String message; //SoftwareSerial nextion(ReceivePin, TransmtPin); Nextion myNextion(nextion, 9600); boolean button1State = 0; boolean button2State = 0; boolean button3State = 0; boolean button4State = 0; boolean button5State = 0; boolean button6State = 0; boolean button7State = 0; boolean button8State = 0; void setup() { Serial1.begin(9600); myNextion.init(); pinMode(ledPin, OUTPUT); // Led incluido en el Nano for (i = 0; i < 8; i++) { pinMode((rele[i]),OUTPUT); digitalWrite((rele[i]),NO); } // Inicia los Relays en NO // for (i = 0; i < 8; i++) // Prueba los Relays del 1 a 8 - Quitar de la compilacion para el uso normal // { digitalWrite((rele[i]),SI); delay(50); digitalWrite((rele[i]),NO); delay(50); } while (!Serial1) {}; // wait for serial port to connect. Needed for native USB port only int brightness = 255; // Ajustar el brillo de la pantalla de 0 a 255 maximo int bright = map(brightness, 0, 1024, 0, 100); String dim = "dim=" + String(bright); myNextion.sendCommand(dim.c_str()); } // Fin Setup void loop() { // put your main code here, to run repeatedly: message = myNextion.listen(); //check for message if (message !="") { Serial1.println(message);} if (message == "65 0 1 0 ffff ffff ffff") {digitalWrite((rele[0]),button1State); button1State = !(button1State); } if (message == "65 0 2 0 ffff ffff ffff") {digitalWrite((rele[1]),button2State); button2State = !(button2State); } if (message == "65 0 3 0 ffff ffff ffff") {digitalWrite((rele[2]),button3State); button3State = !(button3State); } if (message == "65 0 4 0 ffff ffff ffff") {digitalWrite((rele[3]),button4State); button4State = !(button4State); } if (message == "65 0 5 0 ffff ffff ffff") {digitalWrite((rele[4]),button5State); button5State = !(button5State); } if (message == "65 0 6 0 ffff ffff ffff") {digitalWrite((rele[5]),button6State); button6State = !(button6State); } if (message == "65 0 7 0 ffff ffff ffff") {digitalWrite((rele[6]),button7State); button7State = !(button7State); } if (message == "65 0 8 0 ffff ffff ffff") {digitalWrite((rele[7]),button8State); button8State = !(button8State); } } // Fin Loop
esta linea se sombre en rojo Nextion myNextion(nextion, 9600); y sale este error exit status 1 no matching function for call to 'Nextion::Nextion(HardwareSerial&, int)'
Si no se usa la librería software serial hay que modificar la libreria nextion.h, una línea, donde se le indica que no se usaran puertos virtuales. Creo que puede ser el problema. #define USE_SOFTWARE_SERIAL //Comment this line for use HardwareSerial Esa es la línea que veras en la cabecera segun abras el fichero.
#include #include SoftwareSerial nextion(11, 5);// Nextion TX to pin 10 and RX to pin 45 of Arduino Nextion Nex(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps SoftwareSerial nexti(10, 4);// Nextion TX to pin 10 and RX to pin 45 of Arduino Nextion NeT(nexti, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps String Nen1 = ""; // variable de control de botones String Nen = ""; // variable de control de botones void setup() { Serial.begin(9600); NeT.init(); Nex.init();
} void loop() { Nen1 = NeT.listen(); Nen = Nex.listen(); if (Nen != "") { Serial.print(Nen); }// put your main code here, to run repeatedly: if (Nen1 != "") { Serial.print(Nen1); } } Jose Luis no logro poder leer las dos pantallas nextion en que me estoy equivocando ????
Has verificado que de una en una y configuradas como las tienes ahí, te funcionan? De todas formas, una de las limitaciones que tiene el software serial es que no puede recibir datos simultaneamentes en por dos líneas. Tenlo en cuenta, auqnue eso no sea el motivo del fallo. Yo intentaría primero ver si los pines que estas definiendo como rx y tx, funcionan por separado. Que no se por que me da que ya no van funcionar por separado.
Creo que esas librerías no están preparadas para usar dos pantallas por que ya dan problemas solo usando un serial por hardware. Tendrás que investigar tu, es algo que nunca me plantee y ahora no engo tiempo para hacer pruebas con eso. Eso si, nos puedes ir contando tus avances.
bueno lo que hice para poder usar dos pantallas nextion en mi proximo proyecto es casi sacrificar el potencial de la pantalla nextion pero el trabajo requiere dos pulsadores sin más! trabajaré de esta manera #define Nex Serial3 #define Tion Serial2 void setup() { Serial.begin(9600); Nex.begin(9600); Tion.begin(9600); } void loop() { int Cd = Nex.read(); int Kc = Tion.read(); Serial.print (Kc); Serial.println(Cd); } si conecto tx de cada pantalla cualquier señal que me de el pulso sera lo suficiente util lo que carezco de control de las imagenes
Muchas gracias Cambatronics Online, por brindar sus conocimientos específicamente, un cordial saludo desde Mar del Plata, Argentina.
+Eduardo Caporale Un saludo de un gallego (gallego de verdad jajaja).
Buen trabajo, seguiré paso a paso tus ejemplos prácticos a ver si consigo buenos resultados, es un tema muy interesante. Saludos.
Gracias.
Un saludo.
hola muy pero muy agradecido por compartir tu conocimiento, yo estoy recien aprendiendo el lenguaje de programación de arduino muchas gracias desde Chile
Te agradezco tu comentario. Para lo que necesites aquí estamos.
Un saludo.
Cambatronics Online buenas noches, excelentes tutoriales, acerca del manejo de las pantallas nextion, saludos desde ECUADOR, podrias hacer algun tutorial mas adelante con un GPS seria muy interesante.
gracias
Pues tomamos nota de tu sugerencia. Toda persona que quiera participar con nosotros puede hacernos llegar material para hacer los videos. Si alguno tiene un gps que no use, seria de gran ayuda que nos lo hiciera llegar. Asi haríamos las cosas mas rápido, ya que no tenemos disposición económica para poder comprar todos los componentes que nos solicitáis.Un saludo.
Muy bueno el tutorial.
Estoy pasando de la interfaz al código y como apunte; para que funcione bien, no deberíamos tener ningún programa del interfaz HMI precargado con ningún loop o animación; si no, se ejecutará el código de memoria sobre el nuestro.
Lo digo por experiencia, que he estado un buen rato. :P
Gracias y un saludo
Gracias por compartir tus experiencias con nosotros. Un saludo.
Buen trabajo
Gracias.
Que tal Cambatronics excelentes videos, te agradezco por compartir con nosotros todo este material. Oye una duda, trabajando con las librerías oficiales como se pondría la página de inicio y posteriormente que pase a la página principal? Espero puedas apoyarme. Saludos
Depende como trabajes, a mi me gusta que el trabajo lo lleve siempre el arduino. Para hacerlo desde la nextion, crea la pagina de bienvenida en la pagina cero, programa un clock al tiempo que quieras y cuando se cumpla el tiempo, que te lleve a la pagina 1. Para cambiar de pagina es tan simple como poner Page X, siendo x la pagina a la que quieres ir.
Cambatronics de antemano gracias por tus comentarios... Para hacer esto desde arduino con las librerías oficiales es posible? Me podrías orientar? Saludos
@@enriquerodriguez4278 Con el arduino y las librerias oficiales mira el video que le dedico a como cambiar de pantalla y solo has de, despues de que arranque el arduino, temporizar el tiempo que quieras y le mandas cambiar de pantalla. Lo haces con dos sentencias de codigo y una es un delay(). mas facil no puede ser.
Gracias por la orientación amigo José Luis, son de mucha utilidad tus videos... Saludos
@@enriquerodriguez4278 Gracias.
me parece buena informacion, me suscribo y like....
Muchas gracias.
En el minuto 9 cuando hablas de componentes serian variables del arduino? Es decir, si pongo get componentvalue("temp"); que pasa?
No, los componentes de los que hablo son justamente componentes creados en la pantalla, es decir, un slider, un switch, una variable en nextion, etc. Si pones lo que has puesto tu, primero tienes que darle una variable de arduino donde guardar eso, y si tiemes una variable creada con ese nombre en nextion, te devolvería el valor que tenga.
Cambatronics Online gracias. Esa es la idea. Imprimir variables del arduino en pantalla. Y al contrario, dar valores a las variables desde la pantalla. Por cierto, ¿cómo puede usar arduino el reloj del nextion para un temporizador?
El modelo advances ya trae un reloj interno, sino tengras que generar un evento cada segundo e ir calculando tu la temporización que quieras.
Cambatronics Online esa es la pantalla que tengo la ehnance que tiene reloj. Pero no se como sacar el valor del reloj para que arduino actúe.
Uhh tienes razón, cuando recuperemos el pc, haremos un video sobre el reloj de la enhaced.Un saludo.
buenos días, quiero consultar algo, en la actualidad estoy haciendo un proyecto de una interfaz gráfica y quiero saber con agregar la librería de una pantalla tft, esta pantalla puede hacer cual quier imagen que se le envié para que transmita o se tiene que agregar a la librería todas las imágenes que se vayan a transmitir, Ejemplo: si quiero que ella transmita imágenes de google maps de rutas, solo con llamar la librería en el código esta las puede reproducir ?
Este tipo de pantallas, pese a que tiene algun comando grafico, esta pensada para incluirle tu cuando complilas el programa, todas las imagines que vas a usar. De esa forma, al tenerlas precargadas, solo tienes que llamar a la que quieras usar.
Si lo que quieres es tener una tft al estilo clasico, tendras que usar una de otro tipo.
hola, queria preguntar como puedo usar el serial1 del arduino mega para comunicarme con la pantalla nextion ya que solo me funciona configurandolo en Serial en el nextionconfig.h
Pues tienes que modificar el codigo para inicializar el serial que quieras en vez del serial por software.
Muchas gracias por el video, pero me queda una duda: Estoy usando la libreria Nextion.h, tengo un objeto number (n0) en la hmi y quiero poder enviar su valor al arduino uno, para poder hacer calculos con el... me puedes ayudar?
Aunque la librería se llame Nextion.h puede ser librerías de diferentes tipos. Aquí por ejemplo trabajamos con unas que denominamos no oficiales y otras que son las del fabricante de la pantalla (itead): Dependiendo la librería que uses, el comando puede cambiar. Si usas las librerías de itead, yo voy poco a poco indagando, y aun no llegue al punto que deseas, ya que yo por ahora mando los datos en forma de string, que encima en mas fácil, ya que como sabras con números no te permite enviar decimales y tendras que buscar un apaño. Si usas las librerías no oficiales, de las cuales aquí tenemos una especie de curso con ellas (hicimos 5 videos sobre ellas) lo harias enviando : setComponenValue(Id, valor);
Muchas gracias, por la aclaracion, voy a bajar la libreria y probar con ella. Te aviso como me va !
Perfecto, un saludo.
linea 47 contando los comentarios o solo la programación? hay algún problema si lo hago en otra linea?
Hace mucho de este video y no recuerdo, puedes poner el trozo de codigo al que te refieres.
Hola :)
Compré una pantalla Sain Smart 4.3'' TFT y para la conexión con Arduino veo en diferentes páginas donde utilizan el shield... mi pregunta es si es indispensable para la conexión?
Intente conectar la pantalla TFT directamente en el Arduino Mega pero no estoy segura de si esta bien...
Gracias!
No conocía esa pantalla, pero al preguntar he mirado. El tema es que esa pantalla tiene una conexión de 40 pines para su funcionamiento. Sin la shield tendras que cablear eses 40 pines a mano. Supongo que por eso usan una shield para no tener que cablear todos los pines uno a uno.
pero ya te digo que no tengo experiencia con esa pantalla.
buen dia estoy tratando de realizar un proyecto con dos arduinos un arduino uno y un nano ambos con patallas nextion y nrf2401 que transmitan datos de sensores como temperatura y humedad tenia este trabajo con una pantalla lcd y transmitia al monitor serial de arduino pero al querer agregar las pantalla nextion los modulos nrf2401 dejan de transmitir y no tengo idea el por que no se si sea problemas por los seriales, tendras alguna informacion sobre como lo puedo realizar? gracias
No he trabajado aun con modulos nrf, pero los datos que das son muy genericos y no creo que nadie asi se haga una idea. Puedes abrir un tema en nuestro foro (www.cambatronics.com) y alli subir el codigo de los arduinos y el de la pantalla nextion para que el que lo desee le eche un vistazo y te pueda decir su opinion.
Hola, maestro. Si estoy configurando algun valor desde una web, ahi me afectaria el listener?
Lo siento, no entiendo la pregunta.
@@CambatronicsOnline no es valida la pregunta si uso una nextion.
@@ManuelCastillo-kq3xy todas las preguntas son validas, lo que no entiendo es lo que me preguntas.
@@CambatronicsOnline es que me respondi solo. queria desde una web, controlar valores como temperatura maxima y cosas asi, pero con lo puedo hacer por la pantalla, por lo que queda afuera mi pregunta. Se entiende ahora?
Para controlar desde una web, hay una seccion dedicada a esp8266 donde hacemos algunas cosillas como encender y apagar leds, abrir portales de garajes, eh incluso, hay un video donde mediante un esp8266 enciendo desde internet un huevo vibr.ador ( y no, no es coña, lo digo en serio). Todos eses videos estan publicados en mi canal del youtube.
Pero resumiendo, para hacer eso que quieres, haria un servidor web con un esp8266 y no necesitas pantalla. lo haces todoa a traves de la red wifi de tu casa.
Cualquier duda o consulta la podeis dejar aqui.
Cambatronics Online hola buenas, estoy teniendo problemas a la hora de cargar la libreria porque no me reconoce el zip al incluir la libreria
Acabo de volver a probar por si había algún problema e instala correctamente. Vuelve a descargar el zip no vaya a estar corrupto.
El mensaje que me aparece al incluir dicha libreria es el siguiente: El fichero Zip no contiene librerias
El zip se llama Nextion-master ?
Sí, es el mismo que viene en el link
no encuentro como comentar la libreria o el fichero "nextion.h" que menciona porfavor ayuda
y cuando pongo esto"Nextion myNextion(nextion,9600);" sales esto "exit status 1
'nextion' was not declared in this scope" ayuda porfavor
Este ya es un video muy antiguo. Es mejor que abras un nuevo tema en nuestro foro y alli plantees las preguntas aportando el codigo y demas, ya que hace tanto tiempo que no me acuerdo.
Eso es por que estas declarando el objeto de forma local en alguna función. Declaralo en el encabezado, luego de incluir las bibliotecas
libreria comentada o sin comentar me dice que software serial no existe, si comento la linea 47 apenas pongo "Nextion myNextion(nextion,9600);" me dice q no existo si compilo solo la libreria no me da error y compila osea que la libreria si esta cargada
No puedes comentar la libreria de software serial sino no crearas la comunicacion con la pantalla. Si haces el favor crea un tema en nuestro foro (www.cambatroncis.com) y sube una captura de pantalla con los errores. A ver si podemos ayudarte.
Hola, estoy buscando la manera de conectar un touchscreen resistivo a Arduino es el puro touch esque me interesa hacer una máquina que equilibra una bola, espero su ayuda :3
Yo creo que los touch resistivos se tienen que conectar a entradas analogicas y necesitan una calibracion. Puedes abrir un tema nuevo en nuestro foro y asi podras subir la info para que se te pueda ayudar,
Un saludo.
Cambatronics Online si :De
Gracias de todas formas
Hola estoy tratando de usar esta libreria con un arduino mega y no logro que funcione, gracias
Si, la verdad es que yo con estas librerias uso el arduino uno y hay mas gente que a tenido problemas para hacerlo funcionar con el mega. has de editar las librerias e indicarle que vas a usar el serial2 como puerto de conexion con la nextion.
Yo te recomendaria pasar a las librerias oficiales, que esas vienen configuradas para usar con mega, o bien compraria un arduino uno chino que vale poco mas de 3 euros para practicar.
hola que tal ya resolvi el problema de la comunicacion estoy avanzando en mi proyecto; en mi pantalla estoy usando dos botones: b0(+), b1(-),n0,n1; escribi en b0: n0.val++ y en b1: n0.val-- y n0 incrementa o disminuye segun el boton que presione y n1 debe recibir datos de un potenciometro; mi pregunta es como recivir los datos de n0 en mi arduino y comparar con n1 para activar o apagar un led
el otro problema es que mi arduino manda los datos de forma correcta al puerto serie pero la pantalla no identifica los datos sabras por que se genera este problema, estoy usando el puerto serie por hardware y uso este codigo:
void loop()
{
int pval1 = analogRead(A0); // lee la entrada sobre el pin 0 Analogica
int pot1 = map(pval1,0,1023,0,100);
Serial.println("n1.val=");
Serial.println(pot1); // imprime a la salida el valor de su lectura sobre el pin 0
ff();
delay(500);
} // Fin Loop
//0xff
void ff(){
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
}
los datos por el puerto serie salen asi:
ÿÿÿpage 0ÿÿÿdim=48ÿÿÿn1.val=
33
ÿÿÿt0.txt="
33
"
ÿÿÿn1.val=
34
ÿÿÿt0.txt="
34
"
ÿÿÿn1.val=
34
ÿÿÿt0.txt="
34
No l veo nada raro. Haz una cosa, abre un nueva tema en nuestro foro (www.cambatronics.com ) y allí en un zip añademe el programa de la pantalla y el código del arduino, y asi lo pruebo yo para ver que falla que tiene que ser una tontería que se nos escapa.
ya agrege el tema al foro:
PANTALLA NEXTION Y CLON NO RECEPSIONAN DATOS DE ARDUINO
HOLA , A VER SI ME PODRIAS ORIENTAR, COMO PODRIA HACER UNA PANTALLA NEXTION EN UN SEGUNDO MONITOR¿?
No entiendo la pregunta, hacer una pantalla nextion en un segundo monitor?
PUES PODER CONECTAR LA PANTALLA NEXTION POR HDMI A UN PC Y QUE SEA UN SEGUNDO MONITOR
@@MrEnzo2010 Creo que no te has preocupado en saber que es una patalla HMI.
si, lo se, y mi pregunta sigue siendo la misma
@@MrEnzo2010 Terminaremos en un buble entonces, por que mi respuesta tambien lo es.
Si ya tenia modificada la libreria nextion.h y aun asi arrija ese error abajo agregue el codigo para el arduino mega compilalo y veras el error
Pues yo probaría a usar la el puerto virtual, que yo creo que te va compilar sin problemas, y entonces esta claro que seria un problema con la librería. Yo como no uso arduinos con una solo puerto hardware no he tenido ese problema.
Gabriela yo conecte el rx de la nextion a pin 45 y el tex de la nextion al pin 11 y funcionan ahora quiero hacer funcionar dos pantallas y me la veooo muyyyy mal mira asi es como me queda la conexion en el codigo
SoftwareSerial nextion(11, 45);// Nextion TX to pin 10 and RX to pin 45 of Arduino
Nextion Nex(nextion, 9600); //create
pin 45? Yo no tengo tantos pines :D
Buenos dias ¡¡¡ puede ser cualquiera de los pines PWM para transmitir informacion a la nextion, pero para recibir de la nextion solo los pines 10 y 11, no lo se porque ¡¡ pero estoy probando y son con los unicos que tengo respuesta de esta
Para recibir datos, osea el pin Rx, tiene que ser un pin que genere una interrupción en el cambio de flanco, vamos del 8 en adelante creo que es.
hola jose luis buenas noches, de antemano gracias por los video tutoriales y el tiempo que te das para darnos ayuda, bueno estoy usando un codigo con los comandos de la libreria del video, pero tengo un problemita estoy usando arduino mega me funsiona todo pero la pantalla me envia al arduino una trama que no reconoce por ejemplo, el arduino me enciende un led, la pantalla deberia enviar esta trama "0x65 0x01 0x04 0x1 0xff 0xff 0xff" , pero la pantalla envia esta "E 0xff 0xff 0xff" cual seria el motivo por lo que la pantalla envia esta trama con todos los botones y el arduino no la reconoce, conecto la pantalla por via serie y en el monitor serie de "arduino ide" sale esa trama, pero en el software de de nextion si sale la trama correcta
No puede darte el valor "E" por que son datos hexadecimales. Lo mejor es que abras un tema en nuestro foro (www.cambatronics.com), alli podras subir en un fichero rar el codigo que usas par arduino y el de la pantalla. Asi los cargo yo y veo si me da lo mismo que a ti o si veo donde esta el problema.
HOLA BUENAS TARDES JOSE LUIS YA ELABORE EL TEMA CON NOMBRE: " ARDUINO MEGA NO RECEPSIONAN DATOS DE PANTALLA NEXTION"
Ya te conteste.
hola jose luis buenas noches logre la comunicasion entre la pantalla y el arduino, pero tengo un problema que no tome en cuenta, los pines 2,3,4,5,6,7,22,23,24,25,26,27 los estoy usando como entradas (INPUT) y el ARDUINO MEGA, no hace nada o solo funsionan como entradas?
gracias
Hasta donde yo se como I/O funcionan todos los que has dicho, aunque no todos son pwm.
Un saludo.
buenas tardes, tengo problemas al leer datos, en arduino uno funciona bien, pero en el mega arroja basura
+azezinosilente El mega tiene mas fe un puerto por hardware. Lo mejor es modificar el codigo del uno y no usar exactamente el mismo. Siempre que hay mas fe un puerto por hardware es mejor usar esye y no el virtual.
eso hice, use puerto fisico, sin embargo no lee correctamente el valor de unos sliders, marca "-1" siempre.. no se que este mal
hola que tal modifique la libreria para el mega y el codigo de arduino y no compila me sale un error modificaste algo mas a lo que el video indica
hola buenas noches revisado encontre tu comentario, he resolviste el problema de comuncacion del arduino mega, tengo el mismo problema
deberia enviar esto: 65 1 4 1 ffff ffff ffff pero envia al arduino esto E ffff ffff ffff, no entiendo el problema
hola como puedo cambiar de pagina con un comando del arduino?
Depende si utilizas las librerias oficiales o no. Con las librerias no oficiales solo has de poner myNextion.sendCommand("page 1");
Y cambiaria a la pagina 1.
ola amigo, gracias pelo video.
soy del Brasil, estoy me esforçando para aprender.
onde encontro essas e outros commands do nextion para estudar mais ?
qual a diferença e qual melhor de usar... txt_temp.setText(buffer) ou setComponentText(txt_temp, buffer)???
En este video usamos librerias no oficiales. La documentacion la tienes en las propias librerias. Tambien tienes unas librerias oficiales que proporciona el fabricante.
Muy buenos videos lastima que el sonido está muy bajo, a máximo volumen se entiende muy poco. Ojalá que los corrijan. Muchas gracias.
+FRANCISCO RGQ Lo intentaremos. Un saludo.
Si he modificado la libreria nextion.h, la comente en la linear 47
la tenias modificada?
hola modifique la libreria para arduino mega pero me arroja error este es mi codigo
/*
* Control de Ocho relays mediante Arduino Nano y pantalla NEXTION
*/
#include
#include
#define SI !1
#define NO !0
#define nextion Serial1
byte rele[] = {4,5,6,7,8,9,10,11}; // Salidas digitales a los Relay 1,2,3,4,5,6,7,8
const int ledPin = 13; // the number of the LED pin
const byte ReceivePin = 0;
const byte TransmtPin = 1;
int i;
int recv; int trxv;
String message;
//SoftwareSerial nextion(ReceivePin, TransmtPin);
Nextion myNextion(nextion, 9600);
boolean button1State = 0; boolean button2State = 0; boolean button3State = 0; boolean button4State = 0;
boolean button5State = 0; boolean button6State = 0; boolean button7State = 0; boolean button8State = 0;
void setup()
{
Serial1.begin(9600);
myNextion.init();
pinMode(ledPin, OUTPUT); // Led incluido en el Nano
for (i = 0; i < 8; i++)
{ pinMode((rele[i]),OUTPUT); digitalWrite((rele[i]),NO); } // Inicia los Relays en NO
// for (i = 0; i < 8; i++) // Prueba los Relays del 1 a 8 - Quitar de la compilacion para el uso normal
// { digitalWrite((rele[i]),SI); delay(50); digitalWrite((rele[i]),NO); delay(50); }
while (!Serial1) {}; // wait for serial port to connect. Needed for native USB port only
int brightness = 255; // Ajustar el brillo de la pantalla de 0 a 255 maximo
int bright = map(brightness, 0, 1024, 0, 100);
String dim = "dim=" + String(bright);
myNextion.sendCommand(dim.c_str());
} // Fin Setup
void loop()
{
// put your main code here, to run repeatedly:
message = myNextion.listen(); //check for message
if (message !="") { Serial1.println(message);}
if (message == "65 0 1 0 ffff ffff ffff") {digitalWrite((rele[0]),button1State); button1State = !(button1State); }
if (message == "65 0 2 0 ffff ffff ffff") {digitalWrite((rele[1]),button2State); button2State = !(button2State); }
if (message == "65 0 3 0 ffff ffff ffff") {digitalWrite((rele[2]),button3State); button3State = !(button3State); }
if (message == "65 0 4 0 ffff ffff ffff") {digitalWrite((rele[3]),button4State); button4State = !(button4State); }
if (message == "65 0 5 0 ffff ffff ffff") {digitalWrite((rele[4]),button5State); button5State = !(button5State); }
if (message == "65 0 6 0 ffff ffff ffff") {digitalWrite((rele[5]),button6State); button6State = !(button6State); }
if (message == "65 0 7 0 ffff ffff ffff") {digitalWrite((rele[6]),button7State); button7State = !(button7State); }
if (message == "65 0 8 0 ffff ffff ffff") {digitalWrite((rele[7]),button8State); button8State = !(button8State); }
} // Fin Loop
que error?
esta linea se sombre en rojo
Nextion myNextion(nextion, 9600);
y sale este error
exit status 1
no matching function for call to 'Nextion::Nextion(HardwareSerial&, int)'
Si no se usa la librería software serial hay que modificar la libreria nextion.h, una línea, donde se le indica que no se usaran puertos virtuales. Creo que puede ser el problema.
#define USE_SOFTWARE_SERIAL //Comment this line for use HardwareSerial
Esa es la línea que veras en la cabecera segun abras el fichero.
#include
#include
SoftwareSerial nextion(11, 5);// Nextion TX to pin 10 and RX to pin 45 of Arduino
Nextion Nex(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
SoftwareSerial nexti(10, 4);// Nextion TX to pin 10 and RX to pin 45 of Arduino
Nextion NeT(nexti, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
String Nen1 = ""; // variable de control de botones
String Nen = ""; // variable de control de botones
void setup() {
Serial.begin(9600);
NeT.init();
Nex.init();
}
void loop() {
Nen1 = NeT.listen();
Nen = Nex.listen();
if (Nen != "")
{
Serial.print(Nen);
}// put your main code here, to run repeatedly:
if (Nen1 != "")
{
Serial.print(Nen1);
}
}
Jose Luis no logro poder leer las dos pantallas nextion en que me estoy equivocando ????
Has verificado que de una en una y configuradas como las tienes ahí, te funcionan?
De todas formas, una de las limitaciones que tiene el software serial es que no puede recibir datos simultaneamentes en por dos líneas. Tenlo en cuenta, auqnue eso no sea el motivo del fallo.
Yo intentaría primero ver si los pines que estas definiendo como rx y tx, funcionan por separado. Que no se por que me da que ya no van funcionar por separado.
unos de los conectores de la nextion de tantos tirones me va mal ¡¡ e ahi la gran pu......da
mmmmm y como hago para conectralo al Serial1 ... y Serial2 ..... mientras veo como arreglo el cable
Creo que esas librerías no están preparadas para usar dos pantallas por que ya dan problemas solo usando un serial por hardware. Tendrás que investigar tu, es algo que nunca me plantee y ahora no engo tiempo para hacer pruebas con eso.
Eso si, nos puedes ir contando tus avances.
bueno lo que hice para poder usar dos pantallas nextion en mi proximo proyecto es casi sacrificar el potencial de la pantalla nextion pero el trabajo requiere dos pulsadores sin más! trabajaré de esta manera
#define Nex Serial3
#define Tion Serial2
void setup() {
Serial.begin(9600);
Nex.begin(9600);
Tion.begin(9600);
}
void loop() {
int Cd = Nex.read();
int Kc = Tion.read();
Serial.print (Kc);
Serial.println(Cd);
}
si conecto tx de cada pantalla cualquier señal que me de el pulso sera lo suficiente util lo que carezco de control de las imagenes