如何将LCD编程为仅使用自定义字体?

时间:2017-07-24 14:07:26

标签: arduino lcd custom-font

我正在开展一个项目,我只需要使用自定义字体。我已经将所有拉丁字母定义为字节数组,因此我可以简单地将数组值复制到要写入的变量中。下面是我的代码片段。

void menuInit() {
  byte customChar1[8];
  byte customChar2[8];
  byte customChar3[8];
  byte customChar4[8];
  byte customChar5[8];
  byte customChar6[8];
  byte customChar7[8];
  byte customChar8[8];

  for (int i = 0; i <= 7; i++) {
    customChar1[i] = H[i];
    customChar2[i] = E[i];
    customChar3[i] = A[i];
    customChar4[i] = T[i];
  }

  lcd.createChar(0, customChar1);
  lcd.createChar(1, customChar2);
  lcd.createChar(2, customChar3);
  lcd.createChar(3, customChar4);

  lcd.setCursor(0, 0);

  lcd.write(byte(0));
  lcd.write(byte(1));
  lcd.write(byte(2));
  lcd.write(byte(3));

  for (int i = 0; i <= 7; i++) {
    customChar1[i] = C[i];
    customChar2[i] = O[i];
    customChar3[i] = O[i];
    customChar4[i] = L[i];
  }

  lcd.createChar(0, customChar1);
  lcd.createChar(1, customChar2);
  lcd.createChar(2, customChar3);
  lcd.createChar(3, customChar4);

  lcd.setCursor(0, 1);

  lcd.write(byte(0));
  lcd.write(byte(1));
  lcd.write(byte(2));
  lcd.write(byte(3));

Arduino LCD文档说我需要在byte(int)中编写lcd.write()才能打印创建的自定义字符。但是,如果我这样做,我会得到两排&#34; COOL&#34;我的液晶显示屏上显示这可能是因为第一行和第二行都引用了相同的地址。有没有什么方法可以将字节值复制到其他地方并让它保持不变?

1 个答案:

答案 0 :(得分:1)

大多数字符模式LCD都带有ROM中的标准字体,并且能够制作一些自定义字符(通常为8个字符)。请参考您的数据表,但我在过去十年中看到的任何液晶显示器都无法满足您的需求。

图形液晶显示屏不同,因为您可以随意“绘制”它们。