Új hozzászólás Aktív témák

  • Imy

    veterán

    Vettem egy 4 soros LCD-t, I2C buszosat.
    A régi kijelzőnél minden OK volt, a setup részben kiírt szöveg mindig ott maradt. I2C-nél pedig csak a hőmérséklet mérés megy....
    Ennek mi az oka? Illetve mit tehetek ellene? Úgy veszem észre, a régi adatok kiírása nem megy, mintha mindig az írá ki, am az utolsó frissítéskor van. tehát ha frissít, és nincsenek benne a régi adatok, akkor törli.

    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    #include <Sensirion.h>

    LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display

    // SDA-A4, SCL-A5

    //PIN0
    //PIN1
    //PIN2
    //PIN3
    //PIN4
    //PIN5
    /*PIN6*/ int NYOMOGOMB = 6; //PIN6
    /*PIN7*/ const uint8_t dataPin = 7;
    /*PIN8*/ const uint8_t clockPin = 8;
    //PIN9
    //PIN10
    //PIN11
    //PIN12
    /*PIN13*/ int LED = 13;

    boolean ledstate = true; //LED állapot figyelése
    float temperature;
    float humidity;
    float dewpoint;

    Sensirion tempSensor = Sensirion(dataPin, clockPin);

    int seconds = 5; //start seconds
    int minutes = 0; //start min

    void setup() {
    lcd.init(); // initialize the lcd
    lcd.backlight();
    lcd.setCursor(0, 0); //
    lcd.print("Gomb:"); //
    lcd.setCursor(6, 0); //
    lcd.print("KI"); // alapértelmezettként ki van kapcsolva

    pinMode(NYOMOGOMB, INPUT); //PIN6 nyomogomb bemenet

    pinMode(LED, OUTPUT); //PIN13 LED meghajtás
    digitalWrite((LED), LOW); //LED kikapcsolva alapértelmezettként

    }

    void loop()
    {

    // Ha LED ki van kapcsolva, akkor be lehet kapcsolni
    if ((digitalRead(LED) == LOW) && (digitalRead(NYOMOGOMB) == LOW) && (ledstate))
    {
    lcd.init();
    ledstate = false;
    delay(50); // prell elkerülése
    digitalWrite((LED), HIGH);
    lcd.setCursor(6, 0); //
    lcd.print("BE"); // Bekapcsolás kiírás
    }

    // Ha LED be van kapcsolva, akkor ki lehet kapcsolni
    if ((digitalRead(LED) == HIGH) && (digitalRead(NYOMOGOMB) == LOW) && (ledstate))
    {
    lcd.init();
    ledstate = false;
    delay(50); // prell elkerülése
    digitalWrite((LED), LOW);
    lcd.setCursor(6, 0); //
    lcd.print("KI"); // Bekapcsolás kiírás
    }

    if ((digitalRead(NYOMOGOMB) == HIGH) && (!ledstate))
    {
    ledstate = true;
    }

    // hőmérséklet mérése
    if (digitalRead(LED) == HIGH)
    {
    tempSensor.measure(&temperature, &humidity, &dewpoint);
    lcd.init();
    lcd.setCursor(0, 1);
    lcd.print("T:");
    lcd.setCursor(2, 1);
    lcd.print(temperature);
    lcd.setCursor(6, 1);
    lcd.print("C H:");
    lcd.setCursor(11, 1);
    lcd.print(humidity);
    lcd.setCursor(15, 1);
    lcd.print("%");
    /*
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.print(" C, Humidity: ");
    Serial.print(humidity);
    Serial.print(" %, Dewpoint: ");
    Serial.print(dewpoint);
    Serial.print(" C");*/
    delay(500);
    }

    if (digitalRead(LED) == LOW)
    {
    lcd.init();
    lcd.setCursor(0, 1);
    lcd.print(" ");
    }

    }

Új hozzászólás Aktív témák

Hirdetés