Salve, a tutti. Sono nuovo del Forum e chiedo scusa se non ho fatto magari una corretta presentazione. Ho cercato il link ma non l'ho trovato.
Vi spiego il mio problema:
ho un display nextion intelligent e un arduino mega. Il progetto è un tachimetro digitale. Per il momento ho implementato solamente la lettura di un sensore di temperatura esterna ma ho notato che ogni volta che avvio l'arduino il display si avvia e rimane per un stato di freez per circa 2/3 secondi per poi riavviarsi e a quel punto tutto funziona correttamente. Potrei tralasciare il problema dato che alla fine il tempo di attesa è pochissimo ma sono molto pignolo a riguardo e vorrei eliminare tale problema. Vi allego il mio codice arduino sperando possiate aiutarmi.
Ripeto mi scuso ancora se non mi sono presentato in apposito topic ma l'ho cercato senza trovarlo.
Grazie a tutti per le risposte!!
#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 <DallasTemperature.h>
#include <OneWire.h>
#include <DS18B20.h>
#define SENSOR_BUS_PIN 2
OneWire oneWire(SENSOR_BUS_PIN); //Creiamo istanza OneWire per utilizzare il canale di comunicazione
DallasTemperature sensors(&oneWire);
NexText temp = NexText(1, 9, "t1");
NexGauge giri = NexGauge(1, 2, "z0");
unsigned long t0, dt;
void setup() {
Serial.begin(9600);
nexInit();
sensors.begin();
}
void loop() {
dt = millis() - t0;
if(dt > 50)
{
updateNextion();
t0 = millis();
}
}
void updateNextion()
{
sensors.requestTemperatures();
float t = sensors.getTempCByIndex(0);
char str_temp[6];
dtostrf(t, 4, 2, str_temp);
temp.setText(str_temp);
}