Arduino+LCD1602:显示

连接,写代码,显示

 

这不是题外话。我之所以会试试看LCD Shield,一是因为我本来就有这块板,但一直不会用,第二个原因则是Arduino Cookbook这本书。O’Reilly的这本手册对你在Arduino实践中的各种问题(几乎是每一种问题)提供了对应的解答。”Problem”描述了出现的问题,”Recipe”给出了解决办法,”Discuss”则进行了更进一步的讲解。参考了这些资料后,我开始试验我的LCD Shield。

Arduino Cookbook可以在“皮皮书屋”下载,这是一个非常好的电子书网站,收录的大批关于计算机及其衍生学科的电子书,大部分是英文原版PDF。

本篇文章,我会改变一下以前“实验笔记”的形式,介绍一些基础性的知识,方便你自己研究、试验。

LCD Keypad Shield:我使用的LCD模块。接口编号(括号内为对应接口编号):DB4(PIN4),DB5(PIN5),DB6(PIN6),DB7(PIN7),RS(PIN8),Enable(PIN9),背光控制(PIN10)

LiquidCrystal库:这个库包含了你要让LCD工作的一切函数,Arduino IDE自带。你可以在这里找到相关信息,当然,下面一会提到一些。

函数(全部由我人工翻译,若出错请见谅并指正):

  1. LiquidCrystal()——定义你的LCD的接口:各个引脚连接的I/O口编号,格式为LiquidCrystal(rs, enable, d4, d5, d6, d7) LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)
  2. begin()——定义LCD的长宽(n列×n行),格式lcd.begin(cols, rows)
  3. clear()——清空LCD,格式lcd.clear()
  4. home()——把光标移回左上角,即从头开始输出,格式lcd.home()
  5. setCursor()——移动光标到特定位置,格式lcd.setCursor(col, row)
  6. write()——在屏幕上显示内容(必须是一个变量,如”Serial.read()“),格式lcd.write(data)
  7. print()——在屏幕上显示内容(字母、字符串,等等),格式lcd.print(data) lcd.print(data, BASE)
  8. cursor()——显示光标(一条下划线),格式lcd.cursor()
  9. noCursor()——隐藏光标,格式lcd.noCursor()
  10. blink()——闪烁光标,格式lcd.blink()
  11. noBlink()——光标停止闪烁,格式lcd.noBlink()
  12. display()——(在使用noDisplay()函数关闭显示后)打开显示(并恢复原来内容),格式lcd.display()
  13. noDisplay()——关闭显示,但不会丢失原来显示的内容,格式为lcd.noDisplay()
  14. scrollDisplayLeft()——把显示的内容向左滚动一格,格式lcd.scrollDisplayLeft()
  15. scrollDisplayRight()——把显示的内容向右滚动一格,格式为lcd.scrollDisplayRight()
  16. autoscroll()——打开自动滚动,这使每个新的字符出现后,原有的字符都移动一格:如果字符一开始从左到右(默认),那么就往左移动一格,否则就向右移动,格式lcd.autoscroll()
  17. noAutoscroll()——关闭自动滚动,格式lcd.noAutoscroll()
  18. leftToRight()——从左往右显示,也就是说显示的字符会从左往右排列(默认),但屏幕上已经有的字符不受影响,格式lcd.leftToRight()
  19. rightToLeft()——从右往左显示,格式lcd.rightToLeft()
  20. createChar()——自造字符,最多5×8像素,编号0-7,字符的每个像素显示与否由数组里的数(0-不显示,1-显示)决定,格式lcd.createChar(num, data),有点难理解,可以看一个例子
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte smiley[8] = { B00000, B10001, B00000, B00000, B10001, B01110, B00000, };

void setup() { lcd.createChar(0, smiley); lcd.begin(16, 2); lcd.write(0); }

void loop() {} 基本知识就介绍到这里,需要更多信息,可以看看Arduino Cookbook,访问Arduino网站与我联系(如果我能提供帮助的话)。