Tutorial Nextion #5 – Dual State Button

Tutorial Nextion #5 – Dual State Button

Was ist ein Dual State Button?

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.
Einstellungen in der Nextion Software:

Als erstes erstellen wir uns eine Normalen Button und einen Dual State Button.

In den Attributen kann man den Unterschied zwischen den beiden Buttons sehen. Der Dual State Button hat ein Attribut mehr, den val-Wert. Dieser gibt den Schaltzustand des Buttons an. 0=nicht gedrückt und 1=gedrückt.

Alle grün Markierten Werte können mit dem Arduino verändert werden.

Im letzten Schritt geben wir den beiden Buttons noch den print befehl in das jeweilige Touch Press Event. Das ist dafür da um den Button über den Arduino abfragen zu kommen. Das habe ich im Tutorial 3 schon einmal erklärt.

Der Programmcode

				
					#include <SoftwareSerial.h>
SoftwareSerial nextion(6, 5); // RX, TX

String daten_display = "";
int btn_state = 0;
int valdsb = 0;
unsigned int led1=9;
unsigned int led2=12;

void setup() {
  nextion.begin(9600);
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
}

void loop() {
  if (nextion.available() > 0)
  {
    daten_display += char (nextion.read());
    }

  if (daten_display == "Button" && (!btn_state))
  {
    btn_state = 1;
    digitalWrite(led1, HIGH);
    nextion.print("b1.bco=1024");
    nextion.write(0xFF);
    nextion.write(0xFF);
    nextion.write(0xFF);
    daten_display="";
  }
  else if (daten_display == "Button" && (btn_state))
  {
    btn_state = 0;
    digitalWrite(led1, LOW);
    nextion.print("b1.bco=50712");
    nextion.write(0xFF);
    nextion.write(0xFF);
    nextion.write(0xFF);
    daten_display="";
  } 
  
  if (daten_display == "DSButton" && (!valdsb))
  {
    valdsb = 1;
    digitalWrite(led2, HIGH);
    nextion.write(0xFF);
    nextion.write(0xFF);
    nextion.write(0xFF);
    daten_display="";
  }
  else if (daten_display == "DSButton" && (valdsb))
  {
    valdsb = 0;
    digitalWrite(led2, LOW);
    nextion.write(0xFF);
    nextion.write(0xFF);
    nextion.write(0xFF);
    daten_display="";
  } 
}
				
			
Folgende Bauteile wurden verwendet:

Jetzt im Onlineshop

Nextion 3.5″ Discovery Touch Display 480×320 HMI – NX4832F035

43,99 
Enthält 19% MwSt.
zzgl. Versand
Lieferzeit: ca. 1-3 Werktage (*)

Nextion 3.5″ Enhanced Touch Display 480×320 HMI – NX4832K035

54,99 
Enthält 19% MwSt.
zzgl. Versand
Lieferzeit: ca. 1-3 Werktage (*)

FTDI Adapter FT232RL USB zu TTL

5,89 
Enthält 19% MwSt.
zzgl. Versand
Lieferzeit: ca. 1-3 Werktage (*)

UNO R3 ATmega328P Board mit USB Kabel Arduino Uno R3 kompatibel

13,99 
Enthält 19% MwSt.
zzgl. Versand
Lieferzeit: ca. 1-3 Werktage (*)