Start a new topic

Read number value of nextion enhanced from arduino mega sketch

Hello I've been looking for and testing different solutions for several days and I can not do it.
I use a nextion enhenced 7 "and mega arduino.
I want to use the button component (b1 and b2), change the value of a component number (n0) and arduino read the value of n0 to be able to use it in functions.

What I ask is a very simple example to understand the operation.

I read this thread but I can not understand it


http://support.iteadstudio.com/support/discussions/topics/11000002264


Excuse me if my inglish is bad. I'm spanish and speak inglish a litle.

Thank you very much.


I want to use the button component (b1 and b2), change the value of a component number (n0)


You need to explain a little more.

How should the number n0 change when you press the buttons b0 and b1?

Change some specifications, create in the following order

   add one font to HMI

   b0 button component for + (.id of 1)

     - Touch Release Event, check Send Component ID

   b1 button component for  - (.id of 2)

     - Touch Release Event, check Send Component ID

   n0 number component   (.id of 3)


Download Iteadlib Arduino Nextion Library

  https://github.com/itead/ITEADLIB_Arduino_Nextion

Install as Directed in readme.md

Library is preconfigured for MEGA

  - dbSerial is Serial to Serial Monitor

  - nexSerial is Serial2 RX2/TX2 to Nextion


After installing library, see example folder for CompNumber

   - HMI file built as described above

   - the Arduino INO file is straight forward and documented.

 

/**
 * @example CompNumber.ino
 *
 * @par How to Use
 * This example shows that ,when the "+" component on the Nextion screen is released,
 * the value of number component will plus 1,when the "-" component released ,the value of 
 * number component will minus 1 every time.
 *
 * @author  huang xianming (email:<xianming.huang@itead.cc>)
 * @date    2015/11/10
 * @copyright 
 * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 */

#include "Nextion.h"

void b0PopCallback(void *ptr);
void b1PopCallback(void *ptr);
void n0PopCallback(void *ptr);

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

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

/*
 * Declare a number object [page id:0,component id:3, component name: "n0"]. 
 */
NexNumber n0 = NexNumber(0, 3, "n0");

char buffer[100] = {0};

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

/*
 * number component pop callback function. 
 */
void n0PopCallback(void *ptr)
{
    dbSerialPrintln("n0PopCallback");
    n0.setValue(50);
}

/*
 * Button0 component pop callback function.
 * In this example,the value of the number component will plus one every time when button0 is released.
 */
void b0PopCallback(void *ptr)
{
    uint32_t number;
    
    dbSerialPrintln("b0PopCallback");
    n0.getValue(&number);
    number += 1;
    n0.setValue(number);
}

/*
 * Button1 component pop callback function.
 * In this example,the value of the number component will minus one every time when button1 is released.
 */
void b1PopCallback(void *ptr)
{
     uint32_t number;
    
    dbSerialPrintln("b1PopCallback");
    n0.getValue(&number);
    number -= 1;
    n0.setValue(number);
}

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

    /* Register the pop event callback function of the current number component. */
    n0.attachPop(n0PopCallback);

    /* 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.attachPop(b1PopCallback);

    dbSerialPrintln("setup done");
}

void loop(void)
{
    /*
     * When a pop or push event occured every time, 
     * the corresponding component[right page id and component id] in touch event list will be asked.
     */
    nexLoop(nex_listen_list);
}

 

Review the code with the Iteadlib library  both .h header files and .cpp code files.

  - NexConfig.h

  - NexObject.h

  - NexTouch.h  (inherits NexObject)

  - NexHardware.h

  - NexNumber.h  (Inherits NexTouch)

In INO sketch the use of

   #include "Nextion.h"

Includes all .h header files in library

ino

First, thank you for responding.

It's for a time programmer. B1 decreases the counter (n0--) and b2 raises (n0 ++) within a range of 0-24


Sorry, English is required in the forums.

Login or Signup to post a comment