0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Arduino驱动LCD的DIY指南

刘刚 来源:q153605268 作者:q153605268 2023-02-24 09:51 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。

利用Arduino驱动LCD显示屏

目的

教程描述了如何使用Arduino驱动LCD显示屏。

概述

Arduino开发板属于非常流行的单片机开发板,该板的一个常用功能就是用驱动LCD屏,通常用来将信息传递给用户。在本教程中,我将教您如何使用Arduino单片机开发板和Adafruit I2C/SPI LCD驱动模块来驱动LCD。

设备

Arduino Uno R3

I2C/SPI LCD 驱动模块

RGB LCD 20×4

9V, 1A 电源适配器

跳线

USB 电缆 (A-to-B)

面包板

目录

电路接线

编写代码

配置

设置

循环

上传并运行程序

程序

1. 电路接线

LCD通常需要连接很多线才能工作。随时管理所有这些连接可能既繁琐又烦人。幸运的是,Adafruit制造了一款可兼容大多数LCD的I2C/SPI LCD驱动模块。该驱动模块可方便地将您的单片机和LCD之间的连接数量减少到4个。

我总是喜欢用Fritzing绘制接线图(图1:Arduino-LCD原理图)。Fritzing是一款开源原理图设计和PCB布线软件。Fritzing的下载地址(可选)如下:https://fritzing.org/home/

poYBAGPzF8yALGZ7AAIjO6m5-Us564.png

图1:Arduino-LCD原理图

LCD上的引脚1连至LCD驱动模块上的引脚1。其余引脚按顺序连接。这可以在面包板上完成,也可以将驱动模块焊接到LCD上,正如我所做的这样。

I2C和SPI是两种非常流行的串行接口总线。本教程将介绍使用I2C连接Arduino和LCD驱动模块,但是LCD驱动模块也可以连接SPI接口。您可以通过跳接驱动模块上的焊接跳线(图2:LCD驱动模块上的焊接跳线)来设置I2C地址(A0、A1、A2)或使能SPI(SPI使能)。本教程中使用I2C的唯一电路是LCD驱动模块,所以我们不需要更改当前配置。这意味着LCD驱动模块的地址为0(0x00)。

poYBAGPzF82AaVElAABvsLGz0-w207.jpg

图2:LCD驱动模块上的焊接跳线

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

pYYBAGPzF9CAcJZpAADdLtgxF60219.jpg

图3:LCD驱动模块引脚分配

2. 编写代码

2.1 配置

代码的第一部分是包含Adafruit_LiquidCrystal头文件。然后,您就可以使用该库中的函数。由于Arduino IDE会自动下载Adafruit_LiquidCrystal库,本教程没有包含Arduino库的下载步骤。

接下来,我们将LCD驱动模块地址设为0(请记住,我们没有跨接任何焊接跳线)。

最后,我创建了一个名为timer的全局变量,稍后在代码的循环部分中使用。

2.2 设置

LCD在写入之前需要进行初始化。这可以通过“begin”函数实现,该函数会告诉LCD驱动模块显示器上有多少个字符。由于我使用的LCD具有背光功能,因此我也打开背光。

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

poYBAGPzF9KAMhmVAABaICY60sY419.jpg

图4:设置代码

2.3 循环

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

pYYBAGPzF9OAQ7vlAABuB2wzces316.jpg

图5:循环代码

3. 上传并运行程序

将代码上传到Arduino。确保Arduino已经连接9V电源适配器,因为USB电源不足以为Arduino和LCD显示器同时供电。程序开始执行后,设置部分运行完成后,您应该在LCD显示屏上看到“Test”字样(图6:LCD显示“Test”)。循环部分开始执行后,您将会看到程序的运行时间,而且每秒更新一次(图7:LCD显示程序运行时间 – 8(s))。恭喜!您现在拥有一款适用于Arduino板的简单易用LCD显示屏,并可将其用作未来项目的显示屏。提示:I2C是一个慢速总线,如果您持续更新液晶显示器,那么会影响单片机执行其他任务的时间。

pYYBAGPzF9eASM_zAAeuUA9GN6Y123.jpg

图6:LCD显示 “Test”

poYBAGPzF9qARaf2AAe2zovQ7LE894.jpg

图7:LCD显示程序运行时间 – 8(s)

pYYBAGPzF96AURpeAAdsf7A4D7Q402.jpg

图8:LCD显示程序运行时间 – 28(s)

附件:Arduino_LED代码

/*       Project: Arduino LCD
 *       Written by: Chris Marella                            
 *       Date: January 11, 2018                                                                    
 */                                                         

// 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

void setup() {

  //LCD Configuration
  lcd.begin(19,3);        //The begin function tells the LCD driver the size of your LCD screen (columns x rows)
  lcd.setBacklight(HIGH); //setBacklight controls the LCD backlight

  //Test Code
  lcd.setCursor(0,0);     //setCursor function sets the position of the character cursor (column x row)
  lcd.print("Test");      //Prints "Test" across the LCD
  delay(2000);            //Wait for 2 seconds
  lcd.clear();            //clear function clears the LCD screen

}

void loop() {
  timer = millis()/1000;  //set timer variable to how long program has been running in seconds

  lcd.setCursor(0,0);     //set LCD cursor to 0,0
  lcd.print("Time:");     //print time on LCD row 1
  lcd.setCursor(0,1);     //move LCD cursor to row 2
  lcd.print(timer);       //print the current program run time
  lcd.setCursor(0,2);     //move LCD cursor to row 3
  lcd.print("(s)");       //print "(s)" for seconds
  delay(1000);            //wait 1 second to update
}

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    620946
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4278

    浏览量

    164159
  • 显示屏
    +关注

    关注

    28

    文章

    4231

    浏览量

    72703
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184860
收藏 人收藏

    评论

    相关推荐

    点阵LCD驱动编写指南

    点阵LCD驱动编写指南:1. 一些需在提示您的.41.1. 本书更适合什么样的LCD模块? .41.2. 这里的LCD
    发表于 10-04 08:52 229次下载

    LCD液晶驱动PCF8562级联应用指南

    LCD液晶驱动PCF8562级联应用指南
    发表于 07-23 16:18 17次下载

    ARDUINO LCD

    ARDUINO LCD
    发表于 01-22 17:33 13次下载

    ArduinoDIY SD卡模块

    电子发烧友网站提供《ArduinoDIY SD卡模块.zip》资料免费下载
    发表于 07-04 14:24 3次下载
    <b class='flag-5'>Arduino</b>的<b class='flag-5'>DIY</b> SD卡模块

    DIY自己的arduino项目

    电子发烧友网站提供《DIY自己的arduino项目.zip》资料免费下载
    发表于 07-27 10:17 2次下载
    <b class='flag-5'>DIY</b>自己的<b class='flag-5'>arduino</b>项目

    DIY ARDUINO UNO板

    电子发烧友网站提供《DIY ARDUINO UNO板.zip》资料免费下载
    发表于 08-19 09:28 7次下载
    <b class='flag-5'>DIY</b> <b class='flag-5'>ARDUINO</b> UNO板

    DIY Arduino井字游戏

    电子发烧友网站提供《DIY Arduino井字游戏.zip》资料免费下载
    发表于 10-27 17:56 0次下载
    <b class='flag-5'>DIY</b> <b class='flag-5'>Arduino</b>井字游戏

    DIY Arduino角灯

    电子发烧友网站提供《DIY Arduino角灯.zip》资料免费下载
    发表于 11-02 10:46 1次下载
    <b class='flag-5'>DIY</b> <b class='flag-5'>Arduino</b>角灯

    Arduino猫激光玩具DIY

    电子发烧友网站提供《Arduino猫激光玩具DIY.zip》资料免费下载
    发表于 11-02 14:46 0次下载
    <b class='flag-5'>Arduino</b>猫激光玩具<b class='flag-5'>DIY</b>

    DIY Arduino示波器

    电子发烧友网站提供《DIY Arduino示波器.zip》资料免费下载
    发表于 11-11 11:06 3次下载
    <b class='flag-5'>DIY</b> <b class='flag-5'>Arduino</b>示波器

    使用Arduino DIY欧姆表

    电子发烧友网站提供《使用Arduino DIY欧姆表.zip》资料免费下载
    发表于 11-16 09:50 2次下载
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>DIY</b>欧姆表

    基于Arduino平台的DIY示波器

    电子发烧友网站提供《基于Arduino平台的DIY示波器.zip》资料免费下载
    发表于 11-30 14:23 6次下载
    基于<b class='flag-5'>Arduino</b>平台的<b class='flag-5'>DIY</b>示波器

    Arduino DIY闹钟

    电子发烧友网站提供《Arduino DIY闹钟.zip》资料免费下载
    发表于 12-01 09:23 0次下载
    <b class='flag-5'>Arduino</b> <b class='flag-5'>DIY</b>闹钟

    DIY Arduino电子沙漏

    电子发烧友网站提供《DIY Arduino电子沙漏.zip》资料免费下载
    发表于 02-06 11:09 9次下载
    <b class='flag-5'>DIY</b> <b class='flag-5'>Arduino</b>电子沙漏

    使用Arduino DIY电流表

    电子发烧友网站提供《使用Arduino DIY电流表.zip》资料免费下载
    发表于 02-09 09:30 0次下载
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>DIY</b>电流表