Nextion display dove sbaglio???? Risolto

Ciao, ho uno sketch già fatto e volevo "isolare" un comando, cioè quello che si occupa del bottone. Lo sketch originale è il seguente:

[code]
    [code]
/* ===============================================================================

     Vídeo Aula de Engenharia Eletrônica 188

     Utilizando Display Nextion TFT com Arduino


     Autor: Eng. Wagner Rambo

     Data:  Setembro de 2017


     www.wrkits.com.br | facebook.com/wrkits | youtube.com/canalwrkits

  
=============================================================================== */


// ===============================================================================
// --- Biblioteca Auxiliar ---
#include  "Nextion.h"   //biblioteca Nextion


// ===============================================================================
// --- Mapeamento de Hardware ---
#define    pot    A0   //potenciômetro na analógica 0
#define    led    13   //led onboard pino digital 13


// ===============================================================================
// --- Declaração de Objetos ---
                     //page id:0, id componente:1, nome do componente: "bt0"
NexProgressBar j0 = NexProgressBar(0, 4, "j0");
NexText pot_val   = NexText(0, 2, "t0");
NexDSButton bt0   = NexDSButton(0, 5, "bt0");


// ===============================================================================
// --- Variáveis Globais ---
int     pot_value = 0,    //valor ad do potenciômetro
        bar_value = 0;    //valor da barra de progresso

char    txt1[10],         //texto para conversão e exibição
        txt2[10];

uint32_t ds_var;          //armazena o estado do botão


// ===============================================================================
// --- Configurações Iniciais ---
void setup()
{
  
    nexInit();  //inicializa o tft

    pinMode(led, OUTPUT);   //defino saída para o led
    digitalWrite(led, LOW); //inicia desligado
  
  
} //end setup


// ===============================================================================
// --- Loop Infinito ---
void loop()
{

 //Atualização dos valores do Nextion
    j0.setValue(bar_value);
    pot_val.setText(txt1);
  
    pot_value = analogRead(pot);
  
 
    //Converte inteiros para string
    memset(txt1, 0, sizeof(txt1));
    itoa(pot_value, txt1, 10);
  
 
    //Normaliza a barra animada de acordo com o valor do pot
    bar_value = map(pot_value, 0, 1023, 0, 100);


    bt0.getValue(&ds_var);
    if(ds_var>0) digitalWrite(led, HIGH);
    else digitalWrite(led, LOW);
  
  
  
  
  
} //end loop

Quello che ho isolato secondo le mia capacità e quello che riesco capire è il seguente:

#include  "Nextion.h"   

#define    led    13   

NexDSButton bt0   = NexDSButton(0, 5, "bt0");

uint32_t ds_var;          

void setup()
{
  
    nexInit();  

    pinMode(led, OUTPUT);   
    digitalWrite(led, LOW);
  
  
} 
void loop()
{

     bt0.getValue(&ds_var);
    if(ds_var>0) digitalWrite(led, HIGH);
    else digitalWrite(led, LOW);  
  
}

me lo compila ma non funziona. Qualcuno sa dirmi dove sbaglio? grazie mille cosi apprendo meglio i comandi nextion

Il problema è che se tolgo la parte " j0.setValue(bar_value);" non mi funziona più, però non capisco e non so come modificarlo per fare che ritorni un valore giusto per il pulsante.

ma nell'editor del nextion il pulsante l'hai chiamato bt0? Di default quando si inserisce un nuovo pulsante lo chiama b0

Si si. È tutto giusto solo che se elimino quella riga con set.value non va piu nulla.

Nell'interfaccia del Nextion il bottone è nella pagina 0 e ha come id 5? Controllalo e se è differente aggiorna i riferimenti nello sketch di Arduino potrebbe essere quello il problema
Oppure non hai attivato il check Send Component ID nel componente del Nextion, potrebbe essere anche quello se gli altri riferimenti sono corretti

Ho risolto così:

[code]
#include  "Nextion.h"   

#define    led    13   
#define    led2   12  
#define    led3   11    

NexDSButton bt0   = NexDSButton(0, 1, "bt0");
NexDSButton bt1   = NexDSButton(0, 2, "bt1");
NexDSButton bt2   = NexDSButton(0, 3, "bt2");


uint32_t ds_var; 
uint32_t ds_var2;     
uint32_t ds_var3;              

void setup()
{
  
    nexInit();  

    pinMode(led, OUTPUT);   
    pinMode(led2, OUTPUT);
    pinMode(led3, OUTPUT);
    digitalWrite(led, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
  
  
} 
void loop()
{

     bt0.getValue(&ds_var);
    if(ds_var>0) digitalWrite(led, HIGH);
    else digitalWrite(led, LOW);  

    bt1.getValue(&ds_var2);
    if(ds_var2>0) digitalWrite(led2, HIGH);
    else digitalWrite(led2, LOW); 

    bt2.getValue(&ds_var3);
    if(ds_var3>0) digitalWrite(led3, HIGH);
    else digitalWrite(led3, LOW); 
  
}

[/code]

e senza vistare ne il press e ne il release funziona, così ora sono a posto. grazie mille cmq a tutti