
LCD可以做非常多有趣的事情,非常有用,现在让我们一起学习怎么用arduino驱动它。
有很多LCD板没有装引脚,需要我们把引脚焊上去,如果有引脚头和电焊机,这并不困难。如果你的LCD有引脚,可以跳过焊接引脚的部分。
我们需要在电路中装一个电位器来调节显示器的亮度,如果你发现lcd什么也不显示,或者看起来不太正常,可以试着调一下电位器看看。
设备清单
- Arduino Uno
- 16×2 LCD 显示器模块
- 引脚
- 面包板
- 面包板连线
- 10k欧姆的电位器
焊接液晶板引脚
Arduino液晶显示的电路是简单的,让人困扰的地方是要接很多线。
- 将头顶针放好,让短的一面从展示板上的孔中伸出来。
- 现在把引脚一个接一个地焊接,确保不要不小心把两个引脚连接在一起。如果你真的把两个引脚连接在一起了,那么就把焊料融化,然后用吸锡器吸锡。
- 做完之后就是下面的样子
Arduino LCD电路
下面是连接显示器的步骤,你可以在步骤的下面看到完整的电路图。
- 首先,将Arduino的5V引脚与面包板上的正线连接。
- 将接地引脚与面包板上的地线连接。
- 将电位器连接到面包板上,并将正极引脚与正极轨相连。同时,将地线引脚与地线轨相连。
- 将下列导线接在液晶屏上,引脚1最靠近电路板边缘。
- 接地线至LCD的1号引脚、5号引脚和16号引脚。
- 正极5v轨至LCD的2号针脚和15号针脚。
- 将电位器的中间线连接到LCD的3号针脚。
- 将以下Arduino数字引脚连接到LCD的引脚
- 引脚12至引脚4
- 11针至6针
- 5号针至11号针
- 4号针至12号针
- 3号针至13号针
- 2号针至14号针
完整电路图:
编码控制显示器的显示
与显示器通信的代码并不复杂,主要归功于Limor Fried的库,这个库已经包含在Arduino的主库中了。
要找到它,请到File->Examples->LiquidCrystal,里面还包含了一些代码示例。
首先,建议看一下hello世界的例子。这个例子的代码如下。
// include the library code:
#include <LiquidCrystal.h>
//initialise the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
设置LCD
在代码中,你需要设置一个类型为LiquidCrystal的变量。代码如下。
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
参数传递的数字是我们在显示板上连接的Arduino引脚号。下面再次以函数为例,它包含了LCD上对应的引脚。
LiquidCrystal(rs, enable, d4, d5, d6, d7)
液晶板的数据表将包含引脚号和类型。例如,下面是我的板子的数据表。(DB4 = D4, E = 启用,以此类推)
上述功能可以扩展到总共8条数据线的读取。
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
lcd.begin位于上述代码中的setup函数中,用于初始化LCD的接口。在这里你需要指定显示器上有多少列和多少行。
例如,我的显示器有16列和2行。这意味着我们需要设置为16列作为第一个参数,2列作为第二个参数 lcd.begin(cols, rows)
LCD的基本方法
如果你需要清除显示器,调用方法lcd.clear(); 这会擦除显示器,就可以在上面显示一个新的值。确保你事先有一个延迟,这样你就能看到屏幕上显示的东西。
如果你想把光标移回原点而不是清除显示,那么lcd.home();会把光标移到1号位置。
如果你想在LCD显示屏上打印一个字符串,那么打印方法就是你所需要的。只需像这样调用 lcd.print(“My String”)就可以了。
最后一个我将提到的基本方法叫做write方法。这个方法是用来将一个字符写到屏幕上。很像print,只需像这样调用它: lcd.write(‘I’)。
LCD的额外功能
以下是目前Arduino LCD显示的几乎所有方法。如果你想了解更多关于这些功能的信息,那么你可以在Arduino的官方网站上找到完整的文档。
Auto-acroll 自动滚动,向左或向右移动文字 autoscroll(): 每当添加一个新的字符时,会将文本向左移动一个空格 noAutoscroll():关闭自动滚动
Cursor 关闭和开启下划线光标 noCursor(): 关闭下划线光标 Cursor(): 打开下划线光标
Blink 打开和关闭光标, 开启或关闭光标的闪烁 noBlink(): 关闭闪烁 blink(): 打开闪烁
Display 在不丢失当前文本的情况下使显示变为空白 noDisplay(): 关闭显示 display(): 打开显示
Scroll 滚动, 允许向左或向右滚动文字。 scrollDisplayLeft():将向左滚动一个位置 scrollDisplayRight():将向右滚动一个位置
Serial Display 串行显示,可以设置板子接受来自串口显示器之类的串行输入,你可以将通过串口发送的文本打印在屏幕上 write(Serial.read())
Set Cursor 设置光标,将光标设置到特定的位置,(列,行) setCursor(0, 0):将光标设置为左上角 setCursor(15, 1):将光标设置为右下角
Text Direction 文本方向,设置文本从光标的那个方向流动 rightToLeft():强制让文字从光标的左边流向左边 leftToRight():强制文本从光标的右边流过
更深一步
有很多事情,可以用液晶屏来做。我将在下面谈一谈我想在未来的一些想法。
你可以做的一件事是将这个LCD项目与温度传感器捆绑在一起,让你的鱼缸、冰箱、房间、室外或任何你想知道温度的地方都有一个数字温度显示器。
如果你打算做一个Arduino时钟,你可能会想使用其中的一个。与温度传感器和一个按钮捆绑在一起,你可以制作一个智能时钟,在这里你可以按下一个按钮来获得当前的温度。更进一步的做法是添加一个扬声器,让它也能作为一个闹钟。
我之前已经介绍过一个Arduino骰子电路,但你可以用LCD来显示滚动结果,而不是用LED来代替。只要保留开关,其余的部分用屏幕代替就可以了。
现在,希望你的LCD显示器已经正常工作了,如果有什么疑问请留言讨论。
欢迎转载,请留下出处链接:Labno3 » Arduino使用16×2点阵的液晶显示屏