Nachdem auch das nachladen nichts gebraucht und ich unbedingt, ein kleiner Erfolgserlebnis wollte, habe ich den Sketch für den Uno angepasst.
Hier aber mit Softserial auf den Pins 6,5.
Was soll ich sagen, ein kleiner Erfolg stellte sich ein.
Alle Buttons funktionieren bis auf den hier.
#include <SoftwareSerial.h>
SoftwareSerial nextion(6, 5); // RX, TX
String daten_display = "";
int btn_state = 0;
// Ausgänge für Relais festlegen
unsigned int REL_Boxg=13;
unsigned int REL_AKS=12;
unsigned int REL_WEI=11;
unsigned int REL_Bah=10;
unsigned int REL_AD=9;
unsigned int REL_Saf=8;
void setup() {
nextion.begin(9600);
pinMode(REL_Boxg,OUTPUT);
pinMode(REL_AKS,OUTPUT);
pinMode(REL_WEI,OUTPUT);
pinMode(REL_Bah,OUTPUT);
pinMode(REL_AD,OUTPUT);
pinMode(REL_Saf,OUTPUT);
}
void loop() {
//Schauen ob Daten an der Seriellen Schnittstelle ankommen.
if (nextion.available() > 0)
{
daten_display += char (nextion.read());
}
// Abfrage zu den jeweiligen Buttons.
........
if (daten_display == "AKS" && (!btn_state)) {
btn_state = 1;
digitalWrite(REL_AKS, HIGH);
nextion.print("tb1.txt=\"AUS\"");
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
daten_display="";
}
else if (daten_display == "AKS" && (btn_state))
{
btn_state = 0;
digitalWrite(REL_AKS, LOW);
nextion.print("tb1.txt=\" \"");
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
daten_display="";
}
if (daten_display == "Weichen" && (!btn_state))
{
btn_state = 1;
digitalWrite(REL_WEI, HIGH);
digitalWrite(REL_AKS, HIGH); //AKS wird auch abgeschaltet
nextion.print("tb2.txt=\"AUS\"");
nextion.print("tb1.txt=\"AUS\""); //AKS wird auch abgeschaltet
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
daten_display="";
}
else if (daten_display == "Weichen" && (btn_state))
{
btn_state = 0;
digitalWrite(REL_WEI, LOW); // Weichen ein
digitalWrite(REL_AKS, LOW); // Relais AKS
nextion.print("tb2.txt=\" \""); // Weichen ein
nextion.print("tb1.txt=\" \""); // AKS ein
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
daten_display="";
}
........
Das ist der wo ich beim Klick auf den Button Weichen, 2 Relais (jetzt Leds) schalten sollen.
Die Leds schalten ein, dann jedoch hängt der Uno. Nur Reset hilft, dass die Buttons wieder schalten.
Wenn ich diese Zeile auskommentiere, läuft alles weiter
nextion.print("tb1.txt=\"AUS\""); //AKS wird auch abgeschaltet
Eigentlich wollte ich ja mehr, dass auch der Button AKS den gedrückt Status annimmt.
Nur hier fehlt mir der Plan.
Jedenfalls, bin ich froh, dass jetzt mal was funktioniert. 