在这个Arduino LCD教程中,我们将学习如何连接LCD(液晶显示器)到Arduino板。像这样的液晶显示器非常受欢迎,在电子项目中广泛使用,因为它们可以很好地显示来自项目的传感器数据等信息,而且yabo7. com它们非常便宜。足彩网女欧洲杯
你可以观看下面的视频或阅读下面的书面教程。
它有16个引脚,从左到右的第一个引脚是地面销。第二个引脚是我们将5伏针连接在Arduino板上的VCC。接下来是我们可以连接电位器的VO引脚,用于控制显示器的对比度。
接下来,RS引脚或寄存器选择引脚用于选择我们是否将命令或数据发送到LCD。例如,如果RS引脚设置在低状态或零伏特上,则我们将命令发送到LCD,如:将光标设置为特定位置,清除显示屏,关闭显示屏等。当RS引脚设置为高状态或5伏时,我们将数据或字符发送到LCD。
接下来是R / W引脚,它选择模式是否会读取或写入LCD。在这里,写入模式很明显,它用于将命令和数据写入LCD。LCD本身在执行程序时使用读取模式,我们在本教程中讨论了我们无需讨论的程序。
下一个是允许写入寄存器的E引脚,或者从D0到D7的下一个8个数据引脚。所以通过这个引脚,我们发送8位数据当我们写入寄存器时,例如,如果我们想在显示器上看到后面的大写字母A我们将发送01000001到寄存器根据ASCII表。最后两个引脚A和K,也就是阳极和阴极是用于LED背光的。
毕竟我们不必担心LCD如何工作,因为液晶库几乎可以照顾一切。从Arduino的官方网站您可以找到并查看库的功能,可轻松使用LCD。我们可以在4或8位模式下使用库。在本教程中,我们将在4位模式下使用它,或者我们将仅使用8个数据引脚中的4个。
组件需要这个Arduino LCD教程
你可以从下面的任何网站获得这些组件:
- 16×2个字符lcd ........................亚马逊/Banggood/阿里巴巴全球速卖通
- 电位计 ..................................亚马逊/Banggood/阿里巴巴全球速卖通
- Arduino Board .................................亚马逊/Banggood/阿里巴巴全球速卖通
- 面包板和跳线.........亚马逊/Banggood/阿里巴巴全球速卖通
yaboAG娱乐城披露:这些是联盟链接。作为亚马逊助理,我从合格购买中获得。
电路原理图
我们将使用来自Arduino Board的6个数字输入引脚。的液晶显示器’s registers from D4 to D7 will be connected to Arduino’s digital pins from 4 to 7. The Enable pin will be connected to pin number 2 and the RS pin will be connected to pin number 1. The R/W pin will be connected to Ground and the Vo pin will be connected to the potentiometer.
源代码
我们需要做的第一件事是插入液晶库。我们可以这样做:素描>包括图书馆>液晶。然后我们必须创建一个LC对象。该对象的参数应该是Arduino板上的数字输入引脚对LCD引脚的编号,分别为(RS, Enable, D4, D5, D6, D7)。在设置中,我们必须初始化LCD的接口,并使用开始()函数。
在循环中,我们编写主程序。使用print()函数可以在LCD上打印。的setCursor ()功能用于设置写入LCD的后续文本的显示位置。的眨()函数用于显示闪烁的光标和noBlink ()关闭功能。的光标()函数用于显示下划线光标和nocursor()关闭功能。使用清除()功能我们可以清除LCD屏幕。
这是视频中第一个例子的源代码:
/* * Arduino LCD教程* * Crated by Dejan Nedelkovski, * www.HowToMec亚搏手机版官方下载hatronics.com * */ #include < LCD .h> //包含液晶库液晶LCD (1,2,4,5,6,7);//创建一个LC对象。参数:(rs, enable, d4, d5, d6, d7) void setup() {lcd.begin(16,2);//初始化LCD屏幕的接口,并指定显示的尺寸(宽度和高度)}}//在LCD延时(3000)上打印"Arduino";// 3秒延时lcd.setCursor(2,1);//设置写入LCD的后续文本将在LCD上显示的位置。打印(“LCD教程”);延迟(3000);lcd.clear ();//清除显示器lcd.blink(); //Displays the blinking LCD cursor delay(4000); lcd.setCursor(7,1); delay(3000); lcd.noBlink(); // Turns off the blinking LCD cursor lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written delay(4000); lcd.noCursor(); // Hides the LCD cursor lcd.clear(); // Clears the LCD screen }
也可以为LCD编写自定义字符。它最多支持8个字符的5×8像素。我们可以通过8个字节数组指定每个字符的外观。在下面的源代码中,我们可以注意到我们如何通过将0转换为1表示5×8像素来指定字符的外观。在设置中,我们必须使用使用的自定义字符createChar ()函数。这个函数的第一个参数是一个0到7之间的数字,否则我们必须保留支持的8个自定义字符中的一个。第二个参数是字节数组的名称。函数将自定义字符写入显示写()函数,并使用字符的编号作为参数。
下面是第二个自定义字符示例的源代码:
#include <液晶。h>字节斜杠[8]={//字节数组B00001, // B表示二进制格式化程序,5个数字是像素B00010, B00100, B01000, B10000, B00000, B00000, B00000,};液晶显示(1,2,4,5,6,7);//创建一个LC对象。参数:(rs, enable, d4, d5, d6, d7) void setup() {lcd.begin(16,2);//初始化LCD屏幕的界面,并指定显示LCD的尺寸(宽度和高度)。createChar(7、削减);//创建一个自定义字符在LCD上使用。最多支持8个5x8像素的字符}void loop() {for(int i=0;i<=15;i++) {lcd.setCursor(i,0);//设置写入LCD的后续文本显示的位置LCD .write(7);//写入一个字符到LCD延时(1000);// 1秒延时lcd.clear(); // Write a character to the LCD } }
随意询问以下意见部分中的任何问题。
非常感谢!我用自己的双手学到了很多东西,你为我做了完美的!再次感谢! !
我很高兴听到这个消息。不客气!
我非常欣赏你的LCD视频。我想知道你们是否通过I2C模块上传了LCD的视频?如果可以,请给我一个链接(URL)
谢谢。对不起,我还没有这样的教程。
为什么要写那些doe无法编译的代码??
代码正常工作。你可能会做错事。你得到了什么错误?
用D1引脚很奇怪,
这是想要的还是特定于RS LCD功能主义?
avrdude: ser_open(): can 't open device " \\。\COM13 ":系统无法找到指定的文件。
有一个错误。如何解决这个问题。
检查你的COM端口号是什么。
长官,如果用I2c,密码是什么?
这将是不同的。我没有那个密码。
我们可以永久打印一些东西,我的意思是在重启液晶后再次在LCD上显示它?
并且在再次运行程序之前不会再改变吗?
并非如此,您可以永久打印一些东西,但可以确定的是,即使在重新启动LCD后,您也可以制作一个代码来显示您想要的东西,例如,使用Arduino的EEPROM,它可以在断电时存储数据。
我做到了!终于,它起作用了!
但是你不应该直接把阳极连接到Vcc上,因为有一个LED,所以可能会烧了它。你需要一个220欧姆的电阻,你可以增加你想要一个更暗的背光的电阻。我把我的电阻器连接到PMW端口来控制代码中的背光。
很棒,将背光控制连接到PMW端口和电阻是酷的想法。
没有编写代码的经验,但您已经使其更容易理解的基础,TY Dejan!
听你这么说我很高兴。谢谢。
真的很感激你的工作!
为什么要使用电位器,我可以删除电位器吗?
是的,你可以移除它,但你需要设置两个电阻作为分压器,以获得适当的电压,以获得适当的LCD对比度。
对于那些没有电位器的人,电位器是可选的,您可以使用'Analmwrite()'功能:
无效的设置(){
一些代码;
analogWrite(你的VO pin, 50);
这里也有一些代码;
}
非常感谢大家的帮助,能够了解LCD的使用方法!
你好!我知道这是晚了,但我必须问这个问题,我的液晶只显示蓝色屏幕,我检查电线无数次,试图调整电位器,但没有工作。我希望你能帮助我
嘿,好吧,你已经尝试过推荐的东西,当涉及到这个问题时,只有蓝屏。通常是对比的问题,但你说你试过用电位器。也试着用两个电阻器做3.3v的分压器。问题也可能是其他的东西,也许你的LCD有一个不同的驱动程序在它的板上,可能不兼容这个例子,我不知道,也许。或者,你的液晶显示器有问题。