• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
LCD IC2 4x20 wyświetla tylko pierwsze litery
#21
Znalazłem bibliotekę polskie znaki master #include <PolskieZnaki.h> zainstalowałem ale zamiast pokazać ó to krzaczki.Chce uzyskać ł,ó,ć,ś.


Szukam prostego przykładowego menu na wyświetlacz  pod bibliotekę hd44780. Próbowałem inne na LiquidCrystal_I2C.h ale nie wyświetla. Wyświetla dwa paski. Pomocy,Plisss. I co zmienić i poprawić? Uczę się na przykładach. Poprawiłem
Kod:
#include <Wire.h>
#include <hd44780.h>                       // main hd44780 header
#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header

#define PRZYCISKUp 12
#define PRZYCISKDown 11
#define PRZYCISKOK 10
#define PRZYCISKRzut 9
#define PRZYCISK  7

#define wyswietlacz
//#define CZAS_WYSWIETLANIA_LICZBY 2000

int ostatniStan = LOW; //BO PULLUP

int losowaLiczba0;
int losowaLiczba1;
int losowaLiczba2;
int losowaLiczba3;
int losowaLiczba4;
int licznik = 0;
int cyfra;

int r = 0;
int s = 0;
int t = 0;
int z = 0;
int x = 0;

int gracz1;
int gracz2;
int gracz3;
int gracz4;

/*-----( Declare Constants )-----*/
// LCD geometry
const int LCD_COLS = 20;
const int LCD_ROWS = 4;

/*-----( Declare objects )-----*/
hd44780_I2Cexp lcd; // declare lcd object: auto locate & auto config expander chip 
/*-----( Declare Variables )-----*/
int status;

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
 
  status = lcd.begin(LCD_COLS, LCD_ROWS);
  if(status) // non zero status means it was unsuccesful
  {
    // hd44780 has a fatalError() routine that blinks an led if possible
    // begin() failed so blink error code using the onboard LED if possible
    hd44780::fatalError(status); // does not return
  } 
  Serial.begin(9600);

 
  }/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{

  // Print a message to the LCD.
  lcd.setCursor(0, 0);
  lcd.print("  Witam Wszystkich");
  lcd.setCursor(0, 1);
  lcd.print("     Gra w 1000"); 
  lcd.setCursor(0, 2);
  lcd.print("   Kenshin Himura"); 
  lcd.setCursor(0,3 );
  lcd.print("       2020");
 
  delay(1000); 
  lcd.clear();
 
lcd.setCursor(0, 0);
lcd.print("Wybor Ilosci Graczy:");

delay(1000); 
lcd.clear();

lcd.setCursor(0,0);
lcd.print("Graczy 2.               ");   
lcd.setCursor(0,1);
lcd.print("       3.               ");
lcd.setCursor(0,2);
lcd.print("       4.               ");  

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Gracz 1-             ");
  lcd.setCursor(0, 1);
  lcd.print("Rzut koscmi:         ");
  lcd.setCursor(0,2 );
  lcd.print("Kosci:1 2 3 4 5");
  lcd.setCursor(0,3 );
  lcd.print("Wynik:           =  " );


  delay(1000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Gracz 1-   ");
  lcd.setCursor(0, 1);
  lcd.print("Gracz 2-");   
  lcd.setCursor(0, 2);
  lcd.print("Gracz 3-");
  lcd.setCursor(0, 3);
lcd.print("Gracz 4-");

 
lcd.setCursor(8, 0);
  lcd.print("  44");
lcd.setCursor(8, 1);
  lcd.print("  60");
  lcd.setCursor(8, 2);
  lcd.print(" 120");
  lcd.setCursor(8, 3);
  lcd.print("1000");
lcd.print(licznik);
licznik++;



r = random(1, 7);
Serial.println(r);
s = random(1, 7);
Serial.println(s);
t = random(1, 7);
Serial.println(t);
Serial.println(r);
z = random(1, 7);
Serial.println();
x = random(1, 7);
Serial.println(x);

   lcd.backlight(); // zalaczenie podswietlenia

delay(1000);
  //W górę
      while (digitalRead(PRZYCISKUp) == LOW){} {
      digitalWrite(PRZYCISKUp, LOW);
      Serial.print(PRZYCISKUp, HIGH);
      while (digitalRead(PRZYCISKUp) == HIGH){}
      digitalWrite(PRZYCISKUp, HIGH);
      Serial.print(PRZYCISKUp, LOW);

   //W dół
      while (digitalRead(PRZYCISKDown) == LOW){} {
      digitalWrite(PRZYCISKDown, LOW);
      Serial.print(PRZYCISKDown, HIGH);
      while (digitalRead(PRZYCISKDown) == HIGH){}
      digitalWrite(PRZYCISKDown, HIGH);
      Serial.print(PRZYCISKDown, LOW);

       //Zatwerdzenie
      while (digitalRead(PRZYCISKOK) == LOW){} {
      digitalWrite(PRZYCISKOK, LOW);
      Serial.print(PRZYCISKOK, HIGH);
      while (digitalRead(PRZYCISKOK) == HIGH){}
      digitalWrite(PRZYCISKOK, HIGH);
      Serial.print(PRZYCISKOK, LOW);

//Rzut kość
       while (digitalRead(PRZYCISKRzut) == LOW){} {
      digitalWrite(PRZYCISKRzut, LOW);
      Serial.print(PRZYCISKRzut, HIGH);
      while (digitalRead(PRZYCISKRzut) == HIGH){}
      digitalWrite(PRZYCISKRzut, HIGH);
      Serial.print(PRZYCISKRzut, LOW);
     
      losowaLiczba0 = random(1, 7);
      Serial.println(losowaLiczba0,r);
      losowaLiczba1 = random(1, 7);
      Serial.println(losowaLiczba1);
      losowaLiczba1 = random(1, 7);
      Serial.println(losowaLiczba2);
      losowaLiczba3 = random(1, 7);
      Serial.println(losowaLiczba3);   
      losowaLiczba4 = random(1, 7);
      Serial.println(losowaLiczba4);
      
      if (digitalRead(PRZYCISK) ==LOW) { //wyświetl liczbę tylko, jeśli naciśnięto przycisk
    
      delay(PRZYCISK);//Czekaj na naciśnięcie przycisku
 
      wyswietlacz(losowaLiczba0); //Wyswietl wartosc na wyswietlaczu
      wyswietlacz(losowaLiczba1); //Wyswietl wartosc na wyswietlaczu
      wyswietlacz(losowaLiczba2); //Wyswietl wartosc na wyswietlaczu
      wyswietlacz(losowaLiczba3); //Wyswietl wartosc na wyswietlaczu
      wyswietlacz(losowaLiczba4); //Wyswietl wartosc na wyswietlaczu
     
lcd.clear();

  
 
 
 

   } 
   } 
}
}
}/* --(end main loop )-- */

/*-----( Declare User-written Functions )-----*/


/* ( THE END ) */
 
Odpowiedź
  


Wiadomości w tym wątku
RE: LCD IC2 4x20 wyświetla tylko pierwsze litery - przez Himura Kenshin - 17-12-2020, 12:33

Skocz do:


Przeglądający: 2 gości