Problème de portage Arduino

Je souhaite construire une station météo Arduino, et le code que j'ai écrit fonctionnait parfaitement sur mon Arduino Mega 2560 avec un Atmega2560, mais lorsque je l'ai transféré sur mon Arduino/Genuino Micro, le matériel et l'écran LCD ont été câblés correctement, mais ne fonctionnerait pas car dans l’écran LCD ne fonctionnerait pas correctement ou n’afficherait rien, et il n’enverrait rien en série. Lors du téléchargement, j'ai entendu le port USB être connecté et déconnecté à quelques reprises. Code:

    #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
Pouvez-vous toujours exécuter une esquisse de base comme le didacticiel de clignotement? Si le port USB redémarre, cela peut être dû à un court-circuit ou à une surtension.
ajouté l'auteur dotnetengineer, source
Probablement pas lié à votre problème mais ... if (millisSinceStart% interval == 0) est voué à l'échec lorsque millis() ignore la milliseconde qui vous intéresse. Et millis() ignore généralement une milliseconde toutes les 43 ms. Voir Blink Without Delay pour connaître la méthode appropriée pour implémenter cette logique de minutage.
ajouté l'auteur Sprogz, source
Eh bien, j'ai récemment eu le Micro, donc pas de short.
ajouté l'auteur d33tah, source
Mais j'entends toujours l'USB se déconnecter chaque fois que j'appuie sur le bouton de réinitialisation ou que je télécharge, mais il se reconnecte ensuite.
ajouté l'auteur d33tah, source
Je peux exécuter le sketch clignotant et j'ai essayé de le faire comme le dit le sketch BlinkWithoutDelay.
ajouté l'auteur d33tah, source