Mi correghgo... il problema ora lo da anche con la USB, c'è voluto un po più di tempo, infatti ha iniziato dopo circa 30 min ma in maniera del tutto analoga a quando alimentato esternamente.
Potrebbe essere lo sketch? ve lo incollo
#include <SimpleDHT.h> //Sensore di Temperatura
#include <LiquidCrystal.h> //Display LCD
#include <Wire.h> //Orologio
#include <DS3231.h> //Orologio
//Definizione PIN
int ledPinVio = 2;
int buttonBVio = 22;
int VStartVio = 0;
int VEndVio = 200;
int ledPinBia = 3;
int VStartBia=0;
int VEndBia= 200;
int buttonCBia = 24;
int ledPinRed = 4;
int VEndRed= 200;
int ledPinRedEnable = 26;
int BedStatus_IN = 23;
int ExtruderStatus_IN = 30;
int BedStatus_OUT = 31;
int ExtruderStatus_OUT =32;
int pinDHT11 = 33;
SimpleDHT11 dht11;
byte temperature = 0;
byte humidity = 0;
byte data[40] = {0};
long unsigned TimeStart;
long unsigned TimeEnd=0;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int EnableLCD = 1;
DS3231 clock;
RTCDateTime dt;
int buzzer = 6;
void setup()
{
pinMode(ledPinVio, OUTPUT);
pinMode(buttonBVio, INPUT_PULLUP);
pinMode(ledPinBia, OUTPUT);
pinMode(buttonCBia, INPUT_PULLUP);
pinMode(ledPinRed, OUTPUT);
pinMode(ExtruderStatus_IN, INPUT);
pinMode(BedStatus_IN, INPUT);
pinMode(ledPinRedEnable, INPUT_PULLUP);
pinMode(BedStatus_OUT, OUTPUT);
pinMode(ExtruderStatus_OUT, OUTPUT);
pinMode(buzzer,OUTPUT);
analogWrite (ledPinVio, 200);
digitalWrite (ledPinRed, LOW);
analogWrite (ExtruderStatus_IN, 0);
analogWrite (BedStatus_IN, 0);
analogWrite (BedStatus_OUT, 0);
analogWrite (ExtruderStatus_OUT, 0);
Serial.begin(9600);
clock.begin(); //Inizializza DS3231 (Orologio)
//*************************** LCD Print Stringa ********************************************
lcd.begin(16, 2); // set up the LCD's number of columns and rows:
// lcd.print(" TIME "); // Print a message to the LCD.
lcd.setCursor(0, 0);
lcd.print(" Hello");
lcd.setCursor(0, 1);
lcd.print(" Good Job ");
delay (3000);
lcd.clear();
}
void loop()
{
//*************************** ILLUMINAZIONE Viola-Bianco ********************************************
if (digitalRead(buttonBVio)==LOW)
{if ( (pulseIn(ledPinVio, HIGH)> 180) )
{
for (int i=VEndVio; i >= VStartVio; i--)
{
analogWrite(ledPinVio, i);
delay(5);
}
}
else {
for (int i=VStartVio; i <= VEndVio; i++)
{
analogWrite(ledPinVio, i);
delay(5);
}
}
delay (300);
}
if (digitalRead(buttonCBia)==LOW)
{if ( (pulseIn(ledPinBia, HIGH)> 180) )
{
for (int i=VEndBia; i >= VStartBia; i--)
{
analogWrite(ledPinBia, i);
delay(10);
}
}
else {
for (int i=VStartBia; i <= VEndBia; i++)
{
analogWrite(ledPinBia, i);
delay(10);
}
}
delay (300);
}
//*************************** ILLUMINAZIONE Rossa ***************************************************
if (digitalRead (ledPinRedEnable)==LOW)
{ if (digitalRead(BedStatus_IN)==HIGH || digitalRead(ExtruderStatus_IN)==HIGH)
{analogWrite (ledPinRed, VEndRed); }
else {analogWrite(ledPinRed, 0); }
}
if (digitalRead (ledPinRedEnable)==HIGH)
{
analogWrite(ledPinRed, 0);
}
//******* Presenza Tensione su Piatto ed Estrusore ********
if (digitalRead (BedStatus_IN) == HIGH)
{analogWrite (BedStatus_OUT, 200); }
else {analogWrite (BedStatus_OUT, 0); }
if (digitalRead (ExtruderStatus_IN) == HIGH)
{analogWrite (ExtruderStatus_OUT, 200); }
else {analogWrite (ExtruderStatus_OUT, 0); }
//*************************** Sensore di Temperatura - Acquisizione Dati ********
dht11.read(pinDHT11, &temperature, &humidity, data);
//*************************** Orologio - Acquisizione Dati ********
dt = clock.getDateTime();
//************************************ Display LCD *******************************
TimeEnd=TimeStart+30000;
if (millis()>TimeEnd || EnableLCD==1)
{
lcd.setCursor(0, 0);
lcd.println(clock.dateFormat("d-m-Y H:i:s", dt));
lcd.setCursor(0, 1); // set the cursor to column 0, line 1 (first Row is 0)
lcd.print(temperature);
lcd.print(" *C, ");
lcd.print(" Hum: ");
lcd.print(humidity);
lcd.print("%");
TimeStart = millis();
EnableLCD=0;
}
}