风筝
发表于: 2018-5-6 22:42:50 | 显示全部楼层

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/

Arduino_LCD-Fig1-Arduino-LCD-Schematic-1.png


LCD上的引脚1连接到LCD背板上的引脚1。其余引脚按顺序连接。这可以在面包板上完成,或者可以像我一样将背板焊接到LCD上。


I2C和SPI是两种非常流行的串行接口总线。本教程将介绍使用I2C将Arduino连接到LCD背板,但LCD背板也可以使用SPI接口。您可以通过跳接背板上的焊接跳线来设置I2C地址(A0、A1、A2)或启用SPI。本教程中,使用I2C的唯一器件是LCD背板,所以我们不需要更改当前配置。也就是说LCD背板的I2C地址是0(0x00)。

Arduino_LCD-Fig2-Solder-Jumpers-on-LCD-Backpack.jpg


要将LCD背包连接到Arduino,将5V和Arduino上的接地引脚连接到LCD背板上的5V和接地引脚。这将为LCD和LCD背板提供电源。注意:LCD需要5V最低才能正常工作。接下来的两个连接是串行数据和串行时钟。串行时钟连接(橙色线)位于Arduino上的SCL引脚和背板上的CLK引脚之间。串行数据连接(蓝线)位于Arduino上的SDA引脚和背板上的DAT引脚之间。

Arduino_LCD-Fig3-LCD-Backpack-Pinout.jpg


项目使用的代码说明

代码的第一部分是包含Adafruit_LiquidCrystal头文件。这使您可以使用该库中的函数。由于Adafruit_LiquidCrystal库随着Arduino IDE自动下载,本教程不包括下载Arduino库。

接下来,我们将LCD背板地址设置为0。最后,我创建一个名为timer的全局变量,稍后将在loop函数中使用它。

  1. // include the Adafruit LCD Library:
  2. #include

  3. // Connect the the LCD Backpack via I2C, default address #0 (A0-A2 not jumpered)
  4. Adafruit_LiquidCrystal lcd(0);

  5. //Global Variables
  6. int timer;    //create a global variable for a timer
复制代码

setup()函数

在向LCD写入数据之前,需要进行初始化。 “begin”函数通过告诉LCD背板,显示屏上有多少个字符来实现一个点。由于我使用的LCD具有背光,因此我也打开背光。

现在LCD已经初始化了,我写了“测试代码”来检查一切是否正常。该代码将光标设置为起始位置,将“TEST”写入显示屏,等待2秒钟,然后清除显示。

Arduino_LCD-Fig4-Setup-Code.jpg


loop()函数

代码的loop()函数部分使用millis()函数并除以1000来计算程序运行的时间。然后代码使用printsetCursor函数在LCD上显示编程时间。loop函数然后等待一秒钟,然后重复。

Arduino_LCD-Fig5-Loop-Code.jpg


上传和运行代码

将代码上传到Arduino。确保Arduinol连接到9V电源适配器,因为通使用USB供电不能够同时为Arduino和LCD显示屏供电。一旦程序开始运行,您应该在LCD显示屏上看到“TEST”,表示程序运行到Setup函数。当程序运行到loop函数时,您将看到时间程序显示并每秒更新一次。恭喜!您现在拥有一个易于使用的Arduino开发板液晶显示屏,并可将其用作未来项目的显示屏。需要注意的一点是:I2C是一个很慢的总线,如果你不断更新LCD,你将没有太多时间让控制器执行其他任务。

Arduino_LCD-Fig8-LCD-Displaying-Program-Runtime-28.jpg


代码

本文中使用的完整代码如下: main.txt (1.49 KB, 下载次数: 50)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-25 21:39 , Processed in 0.047795 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表