• 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
Konwerter LCD HD44780 I2C - Własne znaki.
#10
Panowie i Panie Smile

Problem rozwiązany!

Oto przykładowy kod wyświetlający naprzemiennie znak omegi i błyskawicy.

Kod:
//Konwerter LCD HD44780 I2C - Własne znaki.

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

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

byte ZNAK1[8] =
{              
  B00000,
  B01110,
  B10001,
  B10001,
  B10001,
  B01010,
  B11011,
  B00000
};

byte ZNAK2[8] =
{
  B00010,
  B00100,
  B01000,
  B00100,
  B00010,
  B10100,
  B11000,
  B11100
};

void setup()
{
  lcd.begin(16,2);
  lcd.createChar(0, ZNAK1);  
  lcd.createChar(1, ZNAK2);  
  lcd.clear();      
  lcd.home ();
  lcd.print ("ZNAK: ");  
}

void loop()
{
  lcd.setCursor (6, 0);
  lcd.print ((char)0);  //Działa zamiennie również: lcd.print (char(0)); lub: lcd.write (byte(0));
  delay (1000);
  lcd.setCursor (6, 0);
  lcd.print ((char)1);
  delay (1000);
}

Problemem była ta sekwencja kodu:

Kod:
lcd.createChar(0, ZNAK);    
  lcd.begin(16,2);              
  lcd.clear();

a musi być:

Kod:
lcd.begin(16,2);
  lcd.createChar(0, ZNAK1);  
  lcd.createChar(1, ZNAK2);  
  lcd.clear();

Ponadto sprawdziłem, że instrukcja: lcd.print ((char)0); może działać zamiennie z instrukcją: lcd.print (char(0)); lub: lcd.write (byte(0));

Pzdr.
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Konwerter LCD HD44780 I2C - Własne znaki. - przez ANT - 07-02-2016, 23:23

Skocz do:


Przeglądający: 1 gości