Hi everyone
I have been playing with Arduino for about a year now and understand a fair bit.
Recently I picked up a Nextion touch screen, as I thought this would be great for 2 way communication to and from an Arduino.
Its been a bit of a learning curve, and is definitely not the easiest item to get working well with an Arduino, however after watching a few YouTube tutorials, I managed to get my head around some of the code.
So I made a simple 2 state button on the display, when i press the button on the Nextion screen the LED on pin 13 of the arduino lights up, when I press it again the LED goes off great, I also print a message to the the screen
So moving on from that, if then start to add extra items into the code for a temp sensor, rtc then I run into difficulties.
If you check the code below, eveything works as I stated, however if I un-comment these items at void setup,
//bme280.init();
//clock.begin(); /
/clock.setDateTime(2018, 7, 26, 8, 59, 55);
all hell breaks loose and the LED no longer comes on or no message when I press the Nextion touch screen.
Any ideas greatfully appreciated as I cant figure it out.
Cheers Alan
#include <Nextion.h>
#include <DS3231.h> // Real Time Clock
#include <Seeed_BME280.h> // H/T/P/ Sensor
BME280 bme280;
DS3231 clock;
int variable1 = 0; // Create a variable to have a counter going up by one on each cycle
int counter = 0; // Create a variable to have a counter for the + and - buttons
NexDSButton bt0 = NexDSButton(0, 7, "bt0"); // Dual state button added
NexText t0 = NexText(0, 2, "t0");
NexText t1 = NexText(0, 3, "t1");
NexText t2 = NexText(0, 6, "t2");
NexText t3 = NexText(0, 7, "t3");
// End of declaring objects
NexTouch *nex_listen_list[] =
{
&bt0, // Dual state button added
NULL // String terminated
}; // End of touch event list
void bt0PopCallback(void *ptr)
{
uint32_t number5 = 0;
bt0.getValue(&number5);
if(number5 == 1){
digitalWrite(13, HIGH);
Serial.print("t0.txt=");
Serial.print("\"");
Serial.print("Hooray!");
Serial.print("\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
}else{
digitalWrite(13, LOW);
Serial.print("t0.txt=");
Serial.print("\"");
Serial.print("It Works!");
Serial.print("\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
}
} // End of release event
void setup() { // Put your setup code here, to run once:
Serial.begin(9600); // Start serial comunication at baud=9600
delay(500); // This dalay is just in case the nextion display didn't start yet, to be sure it will receive the following command.
Serial.print("baud=115200");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.end(); // End the serial comunication of baud=9600
Serial.begin(115200); // Start serial comunication at baud=115200
bt0.attachPop(bt0PopCallback); // Dual state button bt0 release
pinMode(13, OUTPUT);
//bme280.init();
//clock.begin();
//clock.setDateTime(2018, 7, 26, 8, 59, 55);
} // End of setup
void loop() { // Put your main code here, to run repeatedly:
delay(30);
nexLoop(nex_listen_list); // Check for any touch event
} // End of loop