buongiorno vi chiedo aiuto perchè il codice presente nel void loop non viene eseguito totalmente
questo è il codice
#include <LiquidCrystal.h>
#include <SimpleDHT.h>
#include <Wire.h>
#include <DS3231.h>
DS3231 clock;
RTCDateTime dt;
int pin = 3;
int val;
SimpleDHT11 dht11;
// include the library code:
// initialize the library with the numbers of the interface pins
const int rs = 7, e = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int a;
long time;
void setup(){
lcd.begin(16, 2);
pinMode(13, INPUT);
Serial.begin(9600);
pinMode(4,OUTPUT);
clock.begin();
clock.setDateTime(DATE, TIME);
}
}
byte temperature = 0;
byte humidity = 0;
byte data[40] = {0};
void loop(){
dht11.read(pin, &temperature, &humidity, data);
lcd.print((int)temperature);lcd.print("*c");
lcd.print((int)humidity);lcd.print("%");
delay(1000);
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
dt = clock.getDateTime();
lcd.print(dt.hour); lcd.print(":");
lcd.print(dt.minute); lcd.print("-");
a = 0;
if(digitalRead(13)){
Serial.println("primo");
delay(100);
time = millis();
a = 1;
while(millis() - time < 100){
if(digitalRead(13)){
a = 0;
break;
}
}
if (a){
Serial.println("accensione");
digitalWrite(4, !digitalRead (4));
delay(100);
esegui();
}
}
}
void esegui(){
digitalWrite(4, !digitalRead (4));
delay(1000);
il problema è che le informazioni sul lcd appaiono ma non mi funziona la parte di codice che dovrebbe stampare informazioni nelle monitor seriale
se invece elimino il codice che rileva la temperatura l'umidità e l'orario la parte di codice non funzionante funziona
spero di essere stato più o meno chiaro vi prego aiuto non so cosa fare