INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Nextion Touchpanel
10.09.2016, 09:03 (Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2016 11:01 von Hangloose.)
Beitrag #1
Nextion Touchpanel
Hat irgend jemand ein Beispiel Code für ein Nextion Panel.

Ich möchte mit einem Button vom Panel her einen IF befehl auslösen.

Bin nun schon längere Zeit auf der Suche nach einem Exampel das ich verwenden kann jedoch habe ich noch nichts schlaues gefunden und muss bis Donnerstag mein Projekt zum laufen bringen.

Momentan bin ich mit folgendem Code am arbeiten, weiss jedoch nicht wie ich die befehle in meinen Code einbinden soll.


Code:
#include "Nextion.h"  // Import der Nextion-Header Datei

byte status3;

NexButton vodkaw = NexButton(0, 3, "vodkaw");           // 0=Index   Objekt-ID = 1   Objektname

char buffer[100] = {0};  

NexTouch *nex_listen_list[] =  // In der nächsten Zeile wird die Adresse des Objekts eingetragen
{
  &vodkaw,
  NULL
};

    uint16_t len;
    uint16_t number;
void vodkawPopCallback(void *ptr)                // Callback-Funktion
{
    
    NexButton *btn = (NexButton *)ptr;
    dbSerialPrintln("vodkawPopCallback");
    dbSerialPrint("ptr=");
    dbSerialPrintln((uint32_t)ptr);
    memset(buffer, 0, sizeof(buffer));
/* Get the text value of button component [the value is string type]. */
    btn->getText(buffer, sizeof(buffer));
    
    number = atoi(buffer);
    number += 1;

    memset(buffer, 0, sizeof(buffer));
    itoa(number, buffer, 10);

    /* Set the text value of button component [the value is string type]. */
    btn->setText(buffer);


    
}

void setup(void)                            // Konfiguration zwischen Arduino und Nextin Panel
{
  Serial.begin(9600);
  nexInit();
  vodkaw.attachPop(vodkawPopCallback, &vodkaw);      // Pop-Event (Ergebnis wird beim loslassen des Buttion ausgelöst

  dbSerialPrintln("setup done");
}

void loop (void)                            
{
  nexLoop(nex_listen_list);                  //Abfragen des Wertes

  


  delay(1000);
}




Ich bleibe dran und werde euch auch auf dem laufenden halten sobald ich mehr weiss.

Hallo zusammen

Bin etwas weiter gekommen, habe nun ein Beispiel gefunden das ich soweit auf den Arduino UNO anpassen konnte das ich nun mit einem + und - Butten auf und abzählen kann, nun möchte ich gerne den Code so anpassen das die Eingange nicht mehr auf das display ausgegeben wird sondern in einer Status meldung (0 oder 1) ergibt.

Damit ich den Status folgendermassen in einen IF befehl verpacken kann.

if(status10==1)
if(status10==0)[/code]

Hat jemand eine Idee?


Code:
#include "Nextion.h"


// Declare a text object [page id:0,component id:2, component name: "textNumber"].
NexText t0 = NexText(0, 2, "t0");

// Declare a button object [page id:0,component id:3, component name: "buttonPlus"].
NexButton b0 = NexButton(0, 3, "b0");

// Declare a button object [page id:0,component id:4, component name: "buttonMinus"].
NexButton b1 = NexButton(0, 4, "b1");

int number = 50;
char buffer[10] = {0};


/*
   Register object textNumber, buttonPlus, buttonMinus, to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
  &t0,
  &b0,
  &b1,
  NULL
};



/*
   Button0 component pop callback function.
   In this example,the value of the text component will plus one every time when button0 is released.
*/
void b0PopCallback(void *ptr)
{
  dbSerialPrintln("b0PopCallback");

  if (number < 100) number += 1;

  memset(buffer, 0, sizeof(buffer)); // clear buffer
  itoa(number, buffer, 10);
  t0.setText(buffer);
}

/*
   Button1 component push callback function.
   In this example,the value of the text component will minus one every time when button1 is pressed.
*/
void b1PushCallback(void *ptr)
{
  dbSerialPrintln("b11PushCallback");

  if (number > 0) number -= 1;
  
  memset(buffer, 0, sizeof(buffer));  // clear buffer
  itoa(number, buffer, 10);
  t0.setText(buffer);
}

void setup(void)
{
  /* Set the baudrate which is for debug and communicate with Nextion screen. */
  nexInit();
  
  Serial.begin(9600);

  /* Register the pop event callback function of the current button0 component. */
  b0.attachPop(b0PopCallback);

  /* Register the pop event callback function of the current button1 component. */
  b1.attachPush(b1PushCallback);

  dbSerialPrintln("Setup done");
}

void loop(void)
{
  nexLoop(nex_listen_list);
}
[hr]
[code]#include "Nextion.h"


// Declare a text object [page id:0,component id:2, component name: "textNumber"].
NexText t0 = NexText(0, 2, "t0");

// Declare a button object [page id:0,component id:3, component name: "buttonPlus"].
NexButton b0 = NexButton(0, 3, "b0");

// Declare a button object [page id:0,component id:4, component name: "buttonMinus"].
NexButton b1 = NexButton(0, 4, "b1");

int number = 50;
char buffer[10] = {0};


/*
   Register object textNumber, buttonPlus, buttonMinus, to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
  &t0,
  &b0,
  &b1,
  NULL
};



/*
   Button0 component pop callback function.
   In this example,the value of the text component will plus one every time when button0 is released.
*/
void b0PopCallback(void *ptr)
{
  dbSerialPrintln("b0PopCallback");

  if (number < 100) number += 1;

  memset(buffer, 0, sizeof(buffer)); // clear buffer
  itoa(number, buffer, 10);
  t0.setText(buffer);
}

/*
   Button1 component push callback function.
   In this example,the value of the text component will minus one every time when button1 is pressed.
*/
void b1PushCallback(void *ptr)
{
  dbSerialPrintln("b11PushCallback");

  if (number > 0) number -= 1;
  
  memset(buffer, 0, sizeof(buffer));  // clear buffer
  itoa(number, buffer, 10);
  t0.setText(buffer);
}

void setup(void)
{
  /* Set the baudrate which is for debug and communicate with Nextion screen. */
  nexInit();
  
  Serial.begin(9600);

  /* Register the pop event callback function of the current button0 component. */
  b0.attachPop(b0PopCallback);

  /* Register the pop event callback function of the current button1 component. */
  b1.attachPush(b1PushCallback);

  dbSerialPrintln("Setup done");
}

void loop(void)
{
  nexLoop(nex_listen_list);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Nextion Touchpanel Hangloose 1 178 09.09.2016 13:56
Letzter Beitrag: torsten_156

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste