Hirdetés

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

  • ngabor2

    nagyúr

    Mit lehet tenni, hogy egy 20x4-es lcd-n helyesen jelenjenek meg a kiírandó számok/betűk?

    Soros terminálon jól jelenik meg, de az lcd-n csak az első karakterek. Korábban ugyan erre a cuccra írtam egy "időjárás-állomást", abból lett az lcd-s rész átmásolva. Ott annak idején működött, most nem akar.

    Szerintem szokásos módon egy apróság, amit nem veszek észre. Arduino Nano v3

    #include <DHT.h>
    #include <Wire.h>
    #include <RTClib.h>
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(0x20,20,4); // set the LCD address to 0x20 for a 16 chars and 2 line display

    #define DHTPIN 2 // what digital pin we're connected to

    RTC_DS1307 rtc;
    #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
    DHT dht(DHTPIN, DHTTYPE);
    int p3, p4;

    void setup() {
    Serial.begin(9600);
    Serial.println("DHTxx test!");
    lcd.init();
    lcd.backlight();
    dht.begin();
    rtc.begin();
    }

    void loop() {
    DateTime t = rtc.now();
    Serial.print(t.dayOfTheWeek(), DEC);
    Serial.print("/");
    Serial.print(t.hour(), DEC);
    Serial.print(":");
    Serial.print(t.minute(), DEC);
    Serial.print(":");
    Serial.println(t.second(), DEC);
    if ((t.dayOfTheWeek()>0 && t.dayOfTheWeek()<6 && ((t.hour()==7 && t.minute()>29) || (t.hour()>7 && t.hour()<21))) ||
    ((t.dayOfTheWeek()==0 || t.dayOfTheWeek()==6) && t.hour()>8 && t.hour()<21)) {
    p4 = 1;
    digitalWrite(4, LOW);
    }
    else {
    p4 = 0;
    digitalWrite(4, HIGH);
    }
    float h = dht.readHumidity();
    float temp = dht.readTemperature();
    Serial.print(h);
    Serial.println('%');
    if (h < 80) {digitalWrite(3, LOW); p3 = 1; }
    if (h > 92) {digitalWrite(3, HIGH); p3 = 0; }
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print (t.dayOfTheWeek(), DEC);
    lcd.print(" ");
    lcd.print(t.year(), DEC);
    lcd.print('/');
    lcd.print(t.month(), DEC);
    lcd.print('/');
    lcd.print(t.day(), DEC);
    lcd.print(" ");
    lcd.print(t.hour(), DEC);
    lcd.print(':');
    lcd.print(t.minute(), DEC);
    lcd.setCursor(0, 1);
    lcd.print("Humidity: ");
    lcd.print(h);
    lcd.print("%");
    lcd.setCursor(0,2);
    lcd.print("Temp: ");
    lcd.print(temp);
    lcd.print(" deg C");
    lcd.setCursor(0,3);
    lcd.print("Light: ");
    lcd.print(p4);
    lcd.print("Mist: ");
    lcd.print(p3);
    delay(5000);

    }

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