Pues eso amigos, que estoy con el programa para mandar fecha hora temperatura y algunas cosas mas de arduino uno a la pantalla Nextion.
#include <DS3231.h>
#include <doxygen.h>
#include <NexButton.h>
#include <NexCheckbox.h>
#include <NexConfig.h>
#include <NexCrop.h>
#include <NexDualStateButton.h>
#include <NexGauge.h>
#include <NexGpio.h>
#include <NexHardware.h>
#include <NexHotspot.h>
#include <NexNumber.h>
#include <NexObject.h>
#include <NexPage.h>
#include <NexPicture.h>
#include <NexProgressBar.h>
#include <NexRadio.h>
#include <NexRtc.h>
#include <NexScrolltext.h>
#include <NexSlider.h>
#include <NexText.h>
#include <NexTimer.h>
#include <Nextion.h>
#include <NexTouch.h>
#include <NexUpload.h>
#include <NexVariable.h>
#include <NexWaveform.h>
#include <Wire.h>
#include "ABlocks_DS3231rtc.h"
#define DS3231_I2C_ADDRESS 0x68
DS3231 Clock;
bool Century=false;
bool h12;
bool PM;//creamos objeto
NexDSButton bt0 = NexDSButton(1, 1, "bt0");
NexDSButton bt1 = NexDSButton(1, 2, "bt1");
NexDSButton bt2 = NexDSButton(1, 3, "bt2");
NexDSButton bt3 = NexDSButton(1, 4, "bt3");
NexDSButton bt4 = NexDSButton(1, 5, "bt4");
NexDSButton bt5 = NexDSButton(1, 6, "bt5");
NexDSButton bt6 = NexDSButton(1, 7, "bt6");
NexDSButton bt7 = NexDSButton(1, 8, "bt7");
NexText fecha = NexText(0,11,"t1");
NexText reloj = NexText(0,3,"t0");
NexText temp = NexText(0,12,"t2");
NexTouch *nex_listen_list[] =
{
&bt0,
&bt1,
&bt2,
&bt3,
&bt4,
&bt5,
&bt6,
&bt7,
NULL
};
void encender(){
uint32_t estado;
bt0.getValue(&estado);
if (estado== 1)
{
digitalWrite(13,1);
}else{
digitalWrite(13,0);
}
}
void encender2(){
uint32_t estado;
bt1.getValue(&estado);
if (estado== 1)
{
digitalWrite(12,1);
}else{
digitalWrite(12,0);
}
}
void encender3(){
uint32_t estado;
bt2.getValue(&estado);
if (estado== 1)
{
digitalWrite(11,1);
}else{
digitalWrite(11,0);
}
}
void encender4(){
uint32_t estado;
bt3.getValue(&estado);
if (estado== 1)
{
digitalWrite(10,1);
}else{
digitalWrite(10,0);
}
}
void encender5(){
uint32_t estado;
bt4.getValue(&estado);
if (estado== 1)
{
digitalWrite(9,1);
}else{
digitalWrite(9,0);
}
}
void encender6(){
uint32_t estado;
bt5.getValue(&estado);
if (estado== 1)
{
digitalWrite(8,1);
}else{
digitalWrite(8,0);
}
}
void encender7(){
uint32_t estado;
bt6.getValue(&estado);
if (estado== 1)
{
digitalWrite(7,1);
}else{
digitalWrite(7,0);
}
}
void encender8(){
uint32_t estado;
bt7.getValue(&estado);
if (estado== 1)
{
digitalWrite(6,1);
}else{
digitalWrite(6,0);
}
}
void setup() {
Wire.begin();
nexInit();
Serial.begin(9600);
bt0.attachPush(encender);
pinMode(13,OUTPUT);
bt1.attachPush(encender2);
pinMode(12,OUTPUT);
bt2.attachPush(encender3);
pinMode(11,OUTPUT);
bt3.attachPush(encender4);
pinMode(10,OUTPUT);
bt4.attachPush(encender5);
pinMode(9,OUTPUT);
bt5.attachPush(encender6);
pinMode(8,OUTPUT);
bt6.attachPush(encender7);
pinMode(7,OUTPUT);
bt7.attachPush(encender8);
pinMode(6,OUTPUT);
//rtc.setTime(56,00,17,12,4,20); //Fecha inicial, dejar como comentario despues de programar por primera vez.
}
void loop() {
nexLoop(nex_listen_list);
// · 0xff
int second,minute,hour,date,month,year,temperature;
second=Clock.getSecond();
minute=Clock.getMinute();
hour=Clock.getHour(h12, PM);
date=Clock.getDate();
month=Clock.getMonth(Century);
year=Clock.getYear();
temperature=Clock.getTemperature();
char hora[10];
sprintf(hora, "%d:%d:%d", hour, minute, second);
Serial.println(hora);
char Date[10];
sprintf(Date, "%d-%d-%d", date, month, year);
Serial.println(Date);
Serial.println(temperature);
fecha.setText(Date);
ff();
reloj.setText(hora);
ff();
}
void ff(){
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
}
El caso es que solo me manda la hora, y si cambio de linea los comandos
fecha.setText(Date);
ff();
reloj.setText(hora);
ff();
por:
reloj.setText(hora);
ff();
fecha.setText(Date);
ff();
Me manda solo la fecha, es como si estuviera haciendo algo mal con el fin de la orden pero no lo entiendo.