Özel Karakterler Çizme
Coddy'nin Arduino Journey'sinin Ekranlar ve Sensörler bölümünün bir parçası. Ders 10 / 24.
LCD'deki her karakter, 5'e 8 noktalı bir ızgaradır. Numaraları 0 ile 7 arasında olan en fazla sekiz karakter tasarlayabilirsin. Bir karakteri 8 satırla tanımla; her satırda 1, yanan bir nokta anlamına gelen 5 bitlik bir desen bulunur:
byte heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000,
0b00000
};lcd.createChar(0, heart) karakteri 0 numaralı karakter olarak kaydeder. lcd.write(byte(0)) karakteri imlecin bulunduğu yere çizer. print(0) ise bunun yerine 0 rakamını çizer.
Dikkat edilmesi gereken bir nokta: Bir karakteri kaydetmek için kitaplık, ekranı karakter belleğine yönlendirir ve ekran oraya yönlendirilmiş olarak kalır. Sonraki yazdırılan her şey ekrana değil, bu belleğe gider. Bu nedenle yazdırmadan önce, createChar() çağrısından sonra lcd.setCursor() (veya lcd.clear()) çağır.
lcd.createChar(0, heart);
lcd.setCursor(0, 0); // ekrana geri dön
lcd.write(byte(0));Görev
OrtaBaşlangıç kodunda bir gülen yüz tasarımı var. Onunla selam ver:
- onu 0 karakteri olarak
lcd.createChar()ile kaydet - imleci sol üst köşeye taşı
Hiyazdır (sonunda bir boşluk olacak şekilde), ardından gülen yüzü çiz
Run'a, ardından Check'e bas.
Kendin dene
#include <LiquidCrystal.h>
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte smiley[8] = {
0b00000,
0b01010,
0b01010,
0b00000,
0b10001,
0b01110,
0b00000,
0b00000
};
void setup() {
lcd.begin(16, 2);
// gülen yüzü 0 karakteri olarak kaydet, ardından "Hi " ve gülen yüzü yazdır
}
void loop() {
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Ekranlar ve Sensörler bölümündeki tüm dersler
1Yedi Segmentli Göstergeler
Yedi Segmentli GöstergeBaytlardaki Rakam DesenleriGöstergede SaymaSıfıra Geri SayımZar Atıcı2Karakter LCD
LCD'de MerhabasetCursor ile Metin YerleştirmeLCD'de Canlı SayılarArtakalan Rakamları TemizlemeÖzel Karakterler ÇizmeKayan MetinKendi başına pratik yap: Arduino playground