Arduino Problemă de portare

Vreau sa construiesc o statie meteorologica Arduino si codul pe care l-am scris a lucrat perfect la Arduino Mega 2560 cu un Atmega2560, dar cand l-am incarcat pe Arduino/Genuino Micro, hardware-ul si LCD-ul au fost conectate corect, dar nu ar funcționa ca în ecranul LCD nu ar funcționa corect sau nu afișa nimic, și nu ar trimite nimic peste Serial. În timpul încărcării, am auzit că portul USB este conectat și deconectat de câteva ori. Cod:

    #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
Puteți să rulați în continuare o schiță de bază ca tutorialul clipitor? Dacă portul USB pornește din nou, ar putea fi din cauza unui scurtcircuit sau a unei supratensiuni.
adăugat autor dotnetengineer, sursa
Probabil nu este legată de problema dvs., dar ... dacă (millisSinceStart% interval == 0) este obligată să eșueze când millis() ignoră milisecundele care vă interesează. millis() depășește de obicei o milisecundă la fiecare 43 ms. Vedeți Blink Without Delay pentru modul corect de a implementa această logică de sincronizare.
adăugat autor Sprogz, sursa
Ei bine, am primit recent Micro, deci nu pantaloni scurți.
adăugat autor d33tah, sursa
Dar am auzit încă deconectarea USB de fiecare dată când apăs butonul de resetare sau încărcați, dar apoi se conectează din nou.
adăugat autor d33tah, sursa
Pot rula schița intermitentă și am încercat să o fac cum a spus schița BlinkWithoutDelay.
adăugat autor d33tah, sursa