Arduino控制LCD显示helloworld
首先是一些基础知识:
LCD 1602简介:(图片来自http://www.51hei.com/bbs/dpj-36571-1.html)
Arduino LiquidCrystal库简介:
这个库可以封装了对LCD芯片的一些操作,用起来很方便,不用再自己编写相关的芯片时序控制、数据或命令读写等函数的代码了。
1. LiquidCrystal()
简介:创建一个LiquidCrystal的实例(构造函数).可使用4线或8线方式作为数据线(请注意,还需要指令线).若采用四线方式,将d0-d3悬空不连接.RW引脚可接地而不用接在Arduino的某个引脚上;如果这样接,省略在函数中的rw参数。
构造函数:
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)
参数说明:
rs: rs连接的Arduino的引脚编号 rw: rw连接的Arduino的引脚编号 enable:enable连接的Arduino的引脚编号
d0, d1, d2, d3, d4, d5, d6, d7: 连接的Arduino的引脚编号
例子 :
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //使用的上述第一个构造函数,Arduino的12脚接LCD的rs脚、11脚接enable...
void setup() { lcd.print("hello, world!"); } void loop() {}
2.begin()
简介 :指定显示屏的尺寸(宽度和高度)。
语句:lcd.begin(cols, rows)
参数设置 :
lcd:一个LiquidCrystal类型的变量
cols: 显示器可以显示的列数(1602是16列)
rows: 显示器可以显示的行数(1602是2行)
3.clear()
简介:清屏
语句:lcd.clear();
4.setCursor()
简介 : 将光标定位在特定的位置
语句 lcd.setCursor(col, row)
参数:
lcd:一个LiquidCrystal类型的变量
col: 你要显示光标的列 (从0开始计数)
row: 你要显示光标的行 (从0开始计数)
5.print()
简介: 将文本显示在LCD上
语句 :
lcd.print(data)
lcd.print(data, BASE)
参数:
data:要显示的数据,可以是char, byte, int, long或者string类型的
BASE (optional): 数制(可选的),BIN,DEC,OCT,HEX分别将数字以二进制,十进制,八进制,十六进制方式显示出来.
该库还有其他很多有用的函数,这里就不一一介绍了,具体要应用到时可以查阅相关库资料。
有了这些基本知识之后,我们可以开始准备连接硬件线路了
要用的材料:
1.杜邦线若干
2.Arduino主板一块
3.面板包一块
4.1602 LCD一块
5.可变电阻器一个
6.220欧电阻一个
连接方式:
将LCD的RS,ENABLE,D4,D5,D6,D7分别接到Arduino的12,11,5,4,3,2口;
LCD的Vss、R/W接到GND, Vdd接到5v;
LCD的A脚接到5v,k脚串接一个电阻到GND(稍微降低一点背光的亮度);
可变电阻的一只脚接到5v,中间一只接到lcd的V0,另外一只接到GND,这个可变电阻的作用是调节LCD的对比度,若对比度不合适则会导致字符显示看不到!
软件代码:
// 引用LiquidCrystal Library #include <LiquidCrystal.h> // 建立LiquidCrystal 的变数lcd // LCD 接脚: rs, enable, d4, d5, d6, d7 // 对应到Arduino 接脚: 12, 11, 5, 4, 3, 2 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // 设定LCD 的行列数目(2 x 16) lcd.begin(16, 2); // 列印"Hello World" 讯息到LCD 上 lcd.print("hello, world!"); } void loop() { // 将光标设到第5列,第2行(第一列第一行为0,0),设置显示到屏幕第二行中间 lcd.setCursor(6, 1); // 打印Arduino 重开之后经过的秒数 lcd.print(millis()/1000); }
代码在连接好的电路上运行的结果:
结果显示算是成功了,本次实验值得注意的有以下几点:
1.对硬件如LCD的基本了解,各个引脚的接法,其中LCD对比度的控制,在V0脚上串接一个可调电阻是个很好的选择
2.对Arduino库的了解,用起来很方便,不需自己编写赋复杂的硬件控制代码。
参考:
http://www.51hei.com/bbs/dpj-36571-1.html
百度文库