Servomotor über Nextion ansteuern

Hallo,
ich bin Anfänger und möchte über den Nextion Display einen Servomotor ansteuern. Ich verwende dafür den Nextion NX3224K024_011 und das NodeMCU esp8266. Leider tut sich nichts… im seriellen Monitor kommt eine Meldung, wenn ich auf ein Button klicke, aber der Servomotor bewegt sich leider nicht.

Mein Code:

#include <Servo.h>
#include <Nextion.h>
#include <SoftwareSerial.h>

SoftwareSerial myserial(2, 3); //RX, TX

NexButton b2 = NexButton(0, 3, "b2");
NexButton b3 = NexButton(0, 4, "b3");

NexTouch *nex_listen_list[] =
{
 &b2,
 &b3,
 NULL  
};

Servo myServo;
int pos = 0;

void b2Push(void *ptr)  
{
 pos = 180;
 myservo.write(pos);
 delay(100);
}  

void b3Push(void *ptr) 
{
 pos = 0;
 myservo.write(pos);
 delay(100);
} 

void setup() {
 myservo.attach(4); 
 myservo.write(0);
 delay(2000);
 Serial.begin(9600);
 myserial.begin(9600);
 delay(500); 
 Serial.print("baud=115200");
 Serial.write(0xff); 
 Serial.write(0xff);
 Serial.write(0xff);

 Serial.end(); 

 Serial.begin(115200);

 b2.attachPush(b2Push, &b2);
 b3.attachPush(b3Push, &b3);

}

void loop() {
 nexLoop(nex_listen_list);

}

Woran könnte das liegen?

Vielen Dank für eure Hilfe

Dein Sketch ist fast nicht zu lesen. In einem Mobilgerät überhaupt nicht.
Setze den bitte in Code-Tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar.

Hast du denn wenigstens mal versucht, den Servo direkt mit Tasten anzusprechen, also ohne das Nextion ?
Das Nextion ist dann mal ein Thema für sich.

Und was soll das:

Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);

im Setup ?

Und wozu dann noch ein serial.end und nochmal ein serial.begin ?

Der Servo soll ja über das Display bedienbar sein. Ich hatte den Servo alleine an das NodeMCU angeschlossen und da hat er funktioniert. Wie gesagt kenne ich mich noch nicht so gut aus:D

  Serial.write(0xff); 
  Serial.write(0xff);
  Serial.write(0xff);

das habe ich dem Internet entnommen, dass man nach jedem Befehl zum Nextiondisplay die 3 Zeilen schreiben muss

naddl:
Der Servo soll ja über das Display bedienbar sein. Ich hatte den Servo alleine an das NodeMCU angeschlossen und da hat er funktioniert. Wie gesagt kenne ich mich noch nicht so gut aus:D

Dann solltest du es lernen. Hier gibt es genug Informationen.

  Serial.write(0xff); 

Serial.write(0xff);
 Serial.write(0xff);




das habe ich dem Internet entnommen, dass man nach jedem Befehl zum Nextiondisplay die 3 Zeilen schreiben muss

Dann solltest du das auch auf das Nextion schreiben und nicht auf den seriellen Monitor.

Wie gesagt kenne ich mich noch nicht so gut aus

Zeichne einen Programmablaufplan, der zeigt, was wann passieren soll. Dann ermittle, welche Programmteile welcher Aktion im Plan entsprechen. Zusammen mit ein paar wenigen Kontrollstrukturen kann dann ziemlich schnell ein ordentliches Programm daraus machen.

Bis auf die schwierigen Teile ist es ganz einfach :slight_smile:

Gruß

Gregor

gregorss:

Bis auf die schwierigen Teile ist es ganz einfach :slight_smile:

Und dies ist ganz besonders zu beachten.

Was soll das bitte bewirken?

 Serial.begin(9600);
 myserial.begin(9600);
 delay(500);
 Serial.print("baud=115200");
 Serial.write(0xff);
 Serial.write(0xff);
 Serial.write(0xff);

 Serial.end();

 Serial.begin(115200);

Kommunizierst du mit dem Nextion über SoftwareSerial oder (Hardware)Serial?