Panowie i Panie
Problem rozwiązany!
Oto przykładowy kod wyświetlający naprzemiennie znak omegi i błyskawicy.
Problemem była ta sekwencja kodu:
a musi być:
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.
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