Tutorial Nextion #5 – Dual State Button
Tutorial Nextion #5 – Dual State Button
In dem Beitrag will ich kurz auf den Dual State Button und den normalen Button eingehen. Programmbeispiel für den Arduino und Funktionsweise.
Was ist ein Dual State Button?
Ein Dual State Button ist so zu sagen ein Taster mit Rastfunktion oder auch Schalter genannt. Sprich beim betätigen des Button bleibt er gedrückt bis man Ihn noch einmal drückt. Dann geht er wieder in seine Ausgangsstellung zurück.
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.
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 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
UNO R3 ATmega328P Board mit USB Kabel Arduino Uno R3 kompatibel
Du sparst