Arduino Porting-probleem

Ik wil een Arduino-weerstation bouwen en de code die ik schreef werkte perfect op mijn Arduino Mega 2560 met een Atmega2560, maar toen ik het op mijn Arduino/Genuino Micro plakte, waren de hardware en het LCD correct aangesloten, maar het was zou niet werken zoals in het LCD zou niet correct werken of niets weergeven, en het zou niets over Serieel verzenden. Tijdens het uploaden hoorde ik de USB-poort een paar keer verbonden en losgekoppeld zijn. 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
Kun je nog steeds een basisschets uitvoeren zoals de zelfstudie met knipperen? Als de USB-poort opnieuw start, kan dit komen door een kortsluiting of overspanning.
toegevoegd de auteur dotnetengineer, de bron
Waarschijnlijk niet gerelateerd aan uw probleem, maar ... als (millisSinceStart% interval == 0) gedoemd is te mislukken als millis() de milliseconde overslaat waarin u geïnteresseerd bent. millis() slaat meestal elke milliseconde één milliseconde over. Zie Blink Without Delay voor de juiste manier om deze timinglogica te implementeren.
toegevoegd de auteur Sprogz, de bron
Nou, ik heb onlangs de Micro gekregen, dus geen shorts.
toegevoegd de auteur d33tah, de bron
Maar ik hoor nog steeds dat de USB wordt losgekoppeld telkens wanneer ik op de resetknop druk of upload, maar dan maakt hij opnieuw verbinding.
toegevoegd de auteur d33tah, de bron
Ik kan de knipperende schets uitvoeren en ik heb geprobeerd hoe de BlinkWithoutDelay-schets zei.
toegevoegd de auteur d33tah, de bron

Geen antwoorden

0