Arduino移植问题

我想建立一个Arduino气象站,我写的代码在我的Arduino Mega 2560和Atmega2560上完美配合,但是当我把它移植到我的Arduino/Genuino Micro上时,硬件和LCD都正确接线但是它不会工作,因为液晶显示器无法正常工作或不显示任何东西,它不会通过串行发送任何东西。上传时,我听到USB端口连接和断开连接几次。码:

    #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
你还可以像眨眼教程一样运行基本草图吗?如果USB端口重新启动,可能是由于短路或过压。
额外 作者 dotnetengineer,
可能与您的问题无关,但是...... if(millisSinceStart%interval == 0)millis()跳过您感兴趣的毫秒时必然会失败。 millis()通常每43毫秒跳过一毫秒。请参阅无延迟闪烁,了解实施此时序逻辑的正确方法。
额外 作者 Sprogz,
好吧,我最近得到了Micro,所以没有短裤。
额外 作者 d33tah,
但是每次按下重置按钮或上传时,我仍然听到USB断开连接,但它再次连接。
额外 作者 d33tah,
我可以运行闪烁草图,我尝试了BlinkWithoutDelay草图所说的。
额外 作者 d33tah,