• 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
Polskie znaki LCD 20x4 i2c bibloteka
#1
Witam, jestem początkującą osobą, która zaczyna zabawę z Arduino.

Postanowiłem nauczyć się wyświetlania komunikatów na wyświetlaczu LCD. Wszystko dobrze szło do momentu gdy chciałem wyświetlić Polskie znaki i napotkałem problem, gdyż zamiast polskich znaków wyświetlały się jakieś krzaczki.
Po przekopaniu internetu znalazłem kilka bibliotek z Polskimi znakami jednak nie potrafię ich wykorzystać lub są one po prostu źle napisane.

Udało mi się z wykorzystaniem internetu napisać prosty kod wyświetlający napis z jednym znakiem specjalnym jakim jest mała litera "ó".
Wyświetlany tekst:
Witam Wszystkich!
Próba LCD
z Polskimi znakami
Pozdrawiam

Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4); //ustaw adres LCD na 0x27 dla 20 znaków i 4 wierszowego wyświetlacza:
                                  //set the LCD adress to 0x27 tor a 20 chars and 4 line display:

byte male_o[28]=
{
   B00010,
   B00100,
   B01110,
   B10001,
   B10001,
   B10001,
   B01110,
   B00000
};
//przygotowanie tablicy bitów dla znaku specjalnego - Polski znak - mała litera "ó":
//preparing a bit table for a special character - Polish character - lowercase "ó":

void setup()
{
  lcd.init();   // instalcja LCD:
                // initialize the lcd:

lcd.createChar(0, male_o); //tworzenie znaku specjalnego - mała litera "ó" z przygotowanej wcześniej tablicy:
                           //creating a special character - lowercase "ó" from the previously prepared table:

// drukowanie kumounikatów na wyświetlaczu:
// Print a message to the LCD:
lcd.backlight();

lcd.setCursor(0,0);               //wyświetlanie pierwszego wiersza - Witam wszystkich!:
                                  //displaying the first line - Witam wszystkich!:
  lcd.print("Witam Wszystkich!"); 
 
lcd.setCursor(0,1);               //wyświetlanie drugiego wiersza - Próba LCD:
                                  //displaying the second line - Próba LCD:
  lcd.print("Pr");
    lcd.print(char(0));
  lcd.print("ba LCD");
 
lcd.setCursor(0,2);               //wyświetlanie trzeciego wiersza - z Polskimi znakami:
                                  //displaying the third line - z Polskimi znakami:
  lcd.print("z Polskimi znakami");
 
lcd.setCursor(0,3);               //wyświetlanie czwartego wiersza - Pozdrawiam:
                                  //displaying the fourth line - Pozdrawiam:
  lcd.print("Pozdrawiam");
}

void loop() {

}
Wykorzystanie tej metody jest trochę uciążliwe i bardzo długo zajmuje czasu.

Czy ktoś może mi podpowiedzieć w jaki sposób wykorzystać już istniejącą bibliotekę z polskimi znakami aby na piechotę za każdym razem nie tworzyć tak długiego kodu? Albo ktoś podpowie jak utworzyć własną bibliotekę ze specjalnymi znakami i aby móc wykorzystywać w kolejnych projektach nie tworząc kolejnych znaków.

Pozdrawiam
 
Odpowiedź
#2
Odpuść sobie bo ta funkcja pozwala tylko na 8 znaków specjalnych wiec nie wszystkie polskie litery starczy...

I po drugie jak już znaki trzymaj w Flash a nie Ram...
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości