Problema de Portagem do Arduino

Eu quero construir uma estação meteorológica Arduino, e o código que eu escrevi funcionou perfeitamente no meu Arduino Mega 2560 com um Atmega2560, mas quando eu transferi para o meu Arduino/Genuino Micro, o hardware e o LCD foram ligados corretamente, mas não funcionaria como no LCD não funcionaria corretamente ou não exibiria nada, e não enviaria nada sobre Serial. Durante o upload, ouvi a porta USB sendo conectada e desconectada algumas vezes. Código:

    #include "DHT.h"
    #include 
    #include 
    #include 

    LiquidCrystal lcd(8,9,4,5,6,7);
    DHT dht(12, DHT22);

    Adafruit_MPL3115A2 baro = Adafruit_MPL3115A2();

    float temp;
    int humidity;
    int pressure;
    int altitude;
    long interval = 2000;
    long millisSinceStart;
    char cmd;

    void setup() {
      pinMode(12, INPUT);
      lcd.begin(16, 2);
      lcd.clear();
      dht.begin();
        baro.begin();
        lcd.home();
        lcd.print("TEMP:");
        lcd.setCursor(10, 0);
        lcd.print("HUM:");
        lcd.setCursor(0, 1);
        lcd.print("PRES:");
        lcd.setCursor(9, 1);
        lcd.print("ALT:");
        Serial.begin(9600);
        pinMode(A0, INPUT);
    }

    void loop() {
      millisSinceStart = millis();
      if(millisSinceStart % interval == 0){
        temp = dht.readTemperature(true);
        humidity = dht.readHumidity();
        pressure = baro.getPressure();
        altitude = baro.getAltitude();
        lcd.setCursor(5, 0);
        lcd.print(temp);
        lcd.setCursor(14, 0);
        lcd.print(humidity);
        lcd.setCursor(5, 1);
        lcd.print(pressure);
        lcd.setCursor(13, 1);
        lcd.print(altitude);
        Serial.println(temp);
        Serial.println(humidity);
        Serial.println(pressure);
        Serial.println(altitude);
        }
    }
0
Você ainda pode executar um esboço básico como o tutorial de piscar? Se a porta USB for reiniciada, pode ocorrer devido a curto-circuito ou sobretensão.
adicionado o autor dotnetengineer, fonte
Provavelmente não relacionado ao seu problema, mas ... if (millisSinceStart% interval == 0) está fadado a falhar quando millis() ignora o milissegundo em que você está interessado. millis() normalmente pula um milissegundo a cada 43 ms. Veja Pisca sem Atraso para a maneira correta de implementar essa lógica de tempo.
adicionado o autor Sprogz, fonte
Bem, eu tenho recentemente o Micro, então não há shorts.
adicionado o autor d33tah, fonte
Mas ainda ouço a desconexão do USB toda vez que pressiono o botão de reset ou o upload, mas depois ele se conecta novamente.
adicionado o autor d33tah, fonte
Eu posso executar o esboço de piscar e tentei fazer isso como o esboço de BlinkWithoutDelay disse.
adicionado o autor d33tah, fonte