In diesen Beitrag möchte ich noch einmal auf das Thema Button abfrage ohne Nextion Library eingehen. In meinem Beitrag Nextion#1 habe ich das Thema schon einmal beschrieben. Diese sorgte jedoch das ein oder andere mal bei Usern zu Verwirrung.
Daher habe ich eine noch einfacherer Version erstellt. Die kann nur wirklich jeder benutzen, nachbauen und umbauen.
Die Software zum erstellen der Nextionoberfläche findet Ihr hier. https://nextion.tech/nextion-editor/ Auf der Nextion Seite findet Ihr noch weitere nützliche Infos über das Display.
Button Abfrage (alte Version)
Button Abfrage (neue Version)
In der Neuen Version wird in dem Button ein "print" Befehl eingesetzt. Über den Text der dort eingetragen wird lässt sich dann im Arduino die Abfrage realisieren. Der Vorteil ist hier, dass der Text frei gefällt werden kann. Das im Sketch übersichtilicher und einfacher zu verarbeiten. |
![]() |
Der Text der über den "print" Befehl ausgegeben wird, ist ein ASCII Hex. Hier in der Tabelle könnt Ihr die Werte ansehen. Wird aber auch in dem Bild dargestellt. |
![]() |
Der Programmcode
!!! Wichtig
Mit der Zeile daten_display=""; wird der String daten_display geleert, das ist Wichtig damit eine weitere Abfrage möglich ist.
Hier könnt Ihr den Sketch und die Daten für das Display runterladen.
#include <softwareserial.h> SoftwareSerial nextion(6, 5); // RX, TX String daten_display = ""; void setup() { Serial.begin(9600); nextion.begin(9600); } void loop() { // Hier wird geguckt ob Daten an der Seriellen Schnittstelle vorliegen. if (nextion.available() > 0) { daten_display += char (nextion.read()); } // Abfrage zu den jeweiligen Button. if (daten_display == "Button 1"){ Serial.println("Button 1"); daten_display=""; } if (daten_display == "Button 2"){ Serial.println("Button 2"); daten_display=""; } if (daten_display == "Button 3"){ Serial.println("Button 3"); daten_display=""; } if (daten_display == "Button 4"){ Serial.println("Button 4"); daten_display=""; } }
|
|
Folgende Bauteile wurden verwendet:
1x Nextion 3.5″ Discovery Touch Display 480×320 HMI – NX4832F035 - https://ap-url.de/nextion35d1x Nextion 3.5″ Enhanced Touch Display 480×320 HMI – NX4832K035 - https://ap-url.de/nextion35e
1x FTDI Adapter FT232RL USB zu TTL - https://ap-url.de/ftdi
1x UNO R3 ATmega328P Board mit USB Kabel Arduino Uno R3 kompatibel - https://ap-url.de/arduinouno
10 Kommentare
Hallo Ingo,
welches Display Version verwendest du? Bei mir funktioniert es nachwievor. Du kannst mir gern mal deine Datei schicken, dann guck ich es mir an. Mitterweile arbeite ich mit einer anderern Technik, aber wie gesagt, diese funktioniert auf jeden Fall.
Gruß
Tobias
Hallo Meiky,
schick mir doch mal einen Screenshot von deinem Programm. Kannst du das Programm hochladen oder bringt er da auch Fehler. Wenn ja bitte die Fehlermeldung mal mitschicken.
Gruß
Tobias
Hallo,
ich habe versucht den code nachzubauen. aber schon beim nextion werden fehler angezeigt.
dein befehl print “button1” funktioniert nicht.
Error:Invalid Variables:print( Double click to jump to code)
ich weiss nicht warum es nicht geht. gebe ich print ein bekomme ich zur auswahl nur prints und printh angezeigt. aber mit beiden ist es nicht möglich.
es ist zwar gut erklärt aber womöglich nur funktionsfähig mit deinem display.
bei mir funktioniert das leider nicht.
bei mir ist im arduino code ist SoftwareSerial und String nicht farbig, kann das was damit zu tun haben?
bzw. was hat es zu bedeuten wenn die arduino IDE gewisse sachen in gewisse farben färbt?
wenn ich daten_display in (daten_display) setze wird das String davor Rot.
Hallo Samuel,
ja liegt meist daran das die Anfrage dann blockiert ist. Es muss was am Code nicht in Ordnung sein. Schick mir doch mal eine Sachen zu dann guck ich es mir an. Man kann im Code noch was hinzufügen, das sowas nicht passiert.
Gruß
Tobias