Ich wollte eine Nextion Display über Serial1 an den Arduino Mega anschließen. Doch ich bekomme keine Verbindung zum Display. Habe auch Serial2 probiert mit dem gleichen Ergebnis. Auch an einem Uno über SoftSerial bekomme ich keine Verbindung.
Die Verbindung wird nicht geöffnet.
Habe gestern bemerkt dass ich im verbauten Zustand gestern entdeckt habe, dass ich bei der Verkabelung einen Fehler hatte, habe ich es ausgebaut und wollte es an anderen Geräten testen.
Das Display zeigt etwas an und auch der Touch funktioniert.
Könnte es sein, dass der Serielle Port am Display defekt ist?
Ein Oszi zum Test habe ich leider nicht.
Wie wurde der geklemmt?RX - TX so solles sein, RX - RX,TX zu TX ist falach nur dadurch geht normalerweise das Display nicht kaputt.
geklemmt habe ich RX-TX bzw. TX-RX. Das ist mir bekannt.
Der Fehler in der Verkabelung war, dass ich GND an TX hatte. Und TX an GND.
Nur deswegen kann es auch nicht kaputt gehen, obwohl ein paarmal eingeschaltet war. Da ist der Gefahr beim Mega schon größer.
Wie könnte ich das noch testen?
Mein Testscript sieht derzeit so aus:
//#include <Serial1.h>
//#include <wire.h>
#include <SoftwareSerial.h>
SoftwareSerial nextion(5, 6); //RX, TX
// Definiere die Pins für die Software-Serielle Kommunikation
//nextion Serial1(19, 18); // RX, TX
String daten_display = "";
void setup() {
Serial.begin(9600);
//Serial2.begin(9600);
nextion.begin(9600);
}
void loop() {
//if (serial1.available() > 0) {
if (nextion.available() > 0) {
//daten_display += char (serial1.read());
daten_display += char (nextion.read());
Serial.println("Nextion Display sendet Daten");
} else {
Serial.println("Nextion Display nicht verfügbar!");
}
if (daten_display == "Button1") {
Serial.println("Button1 gedrückt");
daten_display="";
}
if (daten_display == "Button2") {
Serial.println("Button2 gedrückt");
daten_display="";
}
if (daten_display == "Button3") {
Serial.println("Button3 gedrückt");
daten_display="";
}
}
Diese Script hatte ich auf den Arduino Uno hochgeladen.
Die Ausgabe im Seriellem Monitor ist ab kurz nach Beginn , dass das Display nicht verfügbar ist.
Dieses Script hatte ich früher bereits mal zum Einüben mit dem Display und den ESP32 genommen.
Die Verbindung zwischen TX und GND ist bei TX = HIGH ein satter Kurzschluss, den die TX nicht lange überleben.
Gruß Tommy
Dann ist mir auch klar warum nichts kommt.
Ich antworte jetzt nochmals auf diesen Thread.
Habe mit nun ein neues Display besorgt. Wenn dieses nun richtig anschließe und einschalte fängt das Display zu blinken an. Wenn ich aber RX auf RX stecke und TX auf TX, dann nicht. Dies ist aber nach Adam Riese nicht richtig. Habe auch gesehen, dass bei meinem Mega (AZ-Delivery) bei Serial1 die Beschriftung falsch ist.
Das Blinken ist aber auch wenn ich Serial2 verwende und TX zu RX und RX zu TX stecke.
Das verstehe ich absolut nicht mehr?
Ich vermute, die Spannungsversorgung für das Display reicht nicht aus.
Spannung bricht zusammen oder Strom ist nicht ausreichend.
Das Display hängt an einem Netzteil das 2A ausgibt. Der Mega am Laptop
GND habe ich verbunden
Was soll ich noch machen?
Was für eins ?
Es gibt reichlich Steckernetzteile die nur als Ladegerät geeignet sind und daher eine schlecht gesiebte Spannung ausgeben. Heißt, das ist nicht direkt für dein Display geeignet. Du kannst es mal mit einem Elko 2000µF an der Spannung für das Display testen. Evtl. funktioniert es dann.
Da wäre ich mir an Deiner Stelle nicht so sicher. Wenn TX HIGH ist und direkt nach GND kurzgeschlossen ist, überlebt es das in den seltensten Fällen. Es sei denn, der Hersteller hätte ihm Sicherheitswiderstände spendiert, was man mangels Schaltung nicht verifizieren kann.
Gruß Tommy
Ein 2 A Hutschienen Netzteil versorgt das Display.
Ok, dann kommt nur noch ein Fehler wie von @Tommy56 beschrieben in Frage.
Wenn es ein originales Nextion ist, dann versuchen zu reklamieren.
Mehr kann man mit den bisherigen Infos nicht sagen.
Ich habe jetzt das Display an einem UNO angeschlossen. Der Code dafür angepasst mit SoftSerial.
Siehe da, da funktioniert es.
Das heisst: Mega ist Defekt, nicht das Display. Auch das alte Display funktioniert mit dem Uno.
Habe zum Test einen Bildschirm und Script genommen, wo ich Werte eingeben muss, und dann wird mir das ganze nach senden am Display im Ergebnisfeld angezeigt.
Mich wundert nur, dass am Mega das nicht funktioniert, bei keinem SerialPort. Ich habe alle durchprobiert. Auch das Testscript funktioniert hier nicht.
Das kann ich leider nicht beurteilen, da ich nicht erkennen kann, wie du es angeschlossen hast.
Nur warum verwendest du am Mega nicht Hardware Serial ? Der hat mehr davon. Bisher sehe ich nur SoftwareSerial.
Am Mega wird Serial2 verwendet.
Nach längerem Hin und her heute mit einem anderen Script das dann auch am Mega mit dem Display über Serial2 funktioniert hat, habe ich wieder das originalscript auf dem Mega aufgespielt. Zuerst hat es nicht funktioniert erst nach einem Reset am Mega funktionierte alles.
Bei weiteren Tests bin ich draufgekommen, dass der Mega immer zuerst einen Reset braucht, wenn ich alles gemeinsam einschalte oder das Display etwas später.
Nur wenn das Display bereits in Betrieb ist und dann der Mega eingeschaltet wird, funktioniert es gleich.
Fragt mich nicht, was hier war. Jedenfalls ist wieder alles an Ort und Stelle verbaut und es funktioniert auch dort. Nur das Problem mit dem Reset habe ich auch dort, da hier alles gemeinsam eingeschaltet wird.
Verbaut ist wieder das alte Display. Nun habe ich ein neues 5” intelligent Nextion Display herumliegen. Könnte es zurücksenden oder ich lasse mir einen anderen Verwendungszweck einfallen.
Danke jedenfalls für die Unterstützung!
Du könntest versuchen, den MEGA länger im Reset zu halten (zusätzlicher Kondensator z.B. 100 nF - Wert austesten - von Reset nach GND) - ein 22pf / 10 kOhm ist schon dran.
Gruß Tommy
Das ist ein Problem der unterschiedlichen Spannungsversorgung.
Versuche doch beides mit einem 5Volt Netzteil zu betreiben.
So habe ich bisher noch nie Probleme mit einem Nextion gehabt.
Der Mega hat auch einen 5Volt Pin, da kannst du die 5Volt drauflegen, aber keine weitere Spannung an andere Eingänge legen.
Noch eine Frage zu RX und TX Kommunikation?
Lt. Datenblatt sind die RX und TX Pins beim Nextion Display auf 3,3 Volt ausgelegt. Die Pins am Arduino Mega geben aber auf 5 Volt aus. Reicht es aus wenn ich am TX Ausgang einen 1k Widerstand hänge, das habe ich mal gelesen oder soll ich besser einen Spannungsteiler nachschalten?
Das wäre mir neu. Zeig mal das Datenblatt.
Wenn 3,3V dann ist ein Spannungsteiler sicherer.
@HotSystems : Hast recht, man sollte richtig lesen können.
Der TX Pin verträgt doch bis zu 5 Volt.