|
Arduino开发板目前最流行的开源硬件,并且通常是使用它们来驱动一个LCD液晶屏,与用户进行信息交互。在本篇文章中,我们将主要学习如何使用Arduino开发板和Adafruit的I2C / SPI LCD背板来驱动LCD液晶屏。
所需的材料 ● Arduino Uno R3开发板 ● I2C / SPI LCD背板 ● RGB LCD 20×4 ● 9V/1A电源适配器 ● 跳线 ● USB电缆(A到B) ● 面包板
电路连接原理图 LCD液晶显示屏与驱动器之间需要很多连线才能正常工作。总是关注于这些连线可能令人特别心烦。幸运的是,Adafruit推出了一款可与大多数LCD配合使用的I2C / SPI LCD背板。该背板可方便地将微控制器和LCD之间的连线数量减少到4个。
我一直喜欢使用Fritzing制作接线图,后者是著名的开源原理图捕获和PCB布线软件。您可以使用以下链接下载Fritzing(可选):http://fritzing.org/home/
LCD上的引脚1连接到LCD背板上的引脚1。其余引脚按顺序连接。这可以在面包板上完成,或者可以像我一样将背板焊接到LCD上。
I2C和SPI是两种非常流行的串行接口总线。本教程将介绍使用I2C将Arduino连接到LCD背板,但LCD背板也可以使用SPI接口。您可以通过跳接背板上的焊接跳线来设置I2C地址(A0、A1、A2)或启用SPI。本教程中,使用I2C的唯一器件是LCD背板,所以我们不需要更改当前配置。也就是说LCD背板的I2C地址是0(0x00)。
要将LCD背包连接到Arduino,将5V和Arduino上的接地引脚连接到LCD背板上的5V和接地引脚。这将为LCD和LCD背板提供电源。注意:LCD需要5V最低才能正常工作。接下来的两个连接是串行数据和串行时钟。串行时钟连接(橙色线)位于Arduino上的SCL引脚和背板上的CLK引脚之间。串行数据连接(蓝线)位于Arduino上的SDA引脚和背板上的DAT引脚之间。
项目使用的代码说明
代码的第一部分是包含Adafruit_LiquidCrystal头文件。这使您可以使用该库中的函数。由于Adafruit_LiquidCrystal库随着Arduino IDE自动下载,本教程不包括下载Arduino库。 接下来,我们将LCD背板地址设置为0。最后,我创建一个名为timer的全局变量,稍后将在loop函数中使用它。 - // include the Adafruit LCD Library:
- #include
- // Connect the the LCD Backpack via I2C, default address #0 (A0-A2 not jumpered)
- Adafruit_LiquidCrystal lcd(0);
- //Global Variables
- int timer; //create a global variable for a timer
复制代码
setup()函数 在向LCD写入数据之前,需要进行初始化。 “begin”函数通过告诉LCD背板,显示屏上有多少个字符来实现一个点。由于我使用的LCD具有背光,因此我也打开背光。 现在LCD已经初始化了,我写了“测试代码”来检查一切是否正常。该代码将光标设置为起始位置,将“TEST”写入显示屏,等待2秒钟,然后清除显示。
loop()函数
代码的loop()函数部分使用millis()函数并除以1000来计算程序运行的时间。然后代码使用print和setCursor函数在LCD上显示编程时间。loop函数然后等待一秒钟,然后重复。
上传和运行代码 将代码上传到Arduino。确保Arduinol连接到9V电源适配器,因为通使用USB供电不能够同时为Arduino和LCD显示屏供电。一旦程序开始运行,您应该在LCD显示屏上看到“TEST”,表示程序运行到Setup函数。当程序运行到loop函数时,您将看到时间程序显示并每秒更新一次。恭喜!您现在拥有一个易于使用的Arduino开发板液晶显示屏,并可将其用作未来项目的显示屏。需要注意的一点是:I2C是一个很慢的总线,如果你不断更新LCD,你将没有太多时间让控制器执行其他任务。
代码 本文中使用的完整代码如下:
main.txt
(1.49 KB, 下载次数: 53)
|