Skocz do zawartości

Błąd wyświetlacza 2004A 20x4 podłączony do Arduino UNO R4 WIFI


Pomocna odpowiedź

Dnia 13.11.2024 o 17:41, mokon napisał:

Jak napisane w temacie mam problem z wyświetlaczem . Mój wyświetlacz wyświetla ciągle to samo. Moje płytka to Arduino UNO R4 WIFI.

 

Strzelam - źle wysterowany pin do regulacji kontrastu

(edytowany)

@mokon Bardzo często miewałem takie problemy (tylko że z wyświetlaczem 2x16), zwykle było to przez kod. Pokaż najlepiej cały kod który wgrałeś i biblioteki jakie zainstalowałeś.

Edytowano przez BeeKeyPro
#include <LiquidCrystal_I2C.h>
#include <ThreeWire.h>
#include <RtcDS1302.h>


//0x3F or 0x27
LiquidCrystal_I2C lcd(0x27, 20, 4);   //LCD Object

ThreeWire myWire(11, 10, 12);        // DAT, CLK, RST
RtcDS1302<ThreeWire> Rtc(myWire);    // RTC Object

void setup ()
{
  lcd.init();
  lcd.backlight();
  lcd.clear();

  Rtc.Begin();

  //RtcDateTime currentTime = RtcDateTime(__DATE__ , __TIME__);
  //Rtc.SetDateTime(currentTime);
}

void loop ()
{
  RtcDateTime now = Rtc.GetDateTime();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Date: ");
  lcd.print(now.Day());
  lcd.print("/");
  lcd.print(now.Month());
  lcd.print("/");
  lcd.print(now.Year());

  lcd.setCursor(0, 1);
  lcd.print("Time: ");
  lcd.print(now.Hour());
  lcd.print(":");
  lcd.print(now.Minute());
  lcd.print(":");
  lcd.print(now.Second());

  //Set the Date and Time Manually when '*' key is pressed
  char c = customKeypad.getKey();
  if (c == '*') {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Enter Year: ");
    int year = getData();

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Enter Month: ");
    int month = getData();

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Enter DayOfWeek: ");
    int day = getData();

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Enter Hours: ");
    int hour = getData();

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Enter Minutes: ");
    int minute = getData();

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Enter Seconds: ");
    int second = getData();

    RtcDateTime newTime = RtcDateTime(year, month, day, hour, minute, second);
    Rtc.SetDateTime(newTime);

  }
  
  delay(500);
}

int getData() {
  String container = "";
  lcd.setCursor(0, 1);
  while (true) {
    char c = customKeypad.getKey();
    if (c == '#') {
      break;
    } else if (isDigit(c)) {
      container += c;
      lcd.print(c);
    } else {
      //Nothing
    }
  }
  return container.toInt();
}

Miał to być wyświetlacz z modułem zegara czasu rzeczywistego DS1302 RTC.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...