I2C LCD1602液晶模块

概述

Arduino控制器的控制端口数量实在是有限,连接几个传感器,通讯设备什么的,你就会发现端口不够用了,还想扩展一个液晶显示器,怎么办?
为了解决上述问题,我们开发的I2C接口的LCD显示器,I2C只需两根线就可以实现数据显示,还可以串联多个I2C设备。标准I2C接口,除了Arduino可以使用之外,其他单片机同样可以进行驱动控制。
I2C LCD1602液晶模块,可以显示2行,每行16个字符。对于Arduino初学者来说,不必为繁琐复杂液晶驱动电路连线而头疼了,这款LCD扩展板将电路简化,使用相关文档中的库文件,您只需使用几行简单的Arduino控制代码便能完成LCD控制显示的功能。
I2C LCD1602液晶模块背面的电位器还能提供你调节液晶显示器对比度的功能。
新版的I2C LCD模块支持gadgeteer接口,并且具有地址设置功能,可以通过跳线设置地址(0x20-0x27)。

warning_yellow.png
常见问题:

1、此显示屏自带的排线为 Gadgeteer接口专用,正常使用arduino请使用普通杜邦线连接。

2、此液晶显示屏'''默认地址为0x20 ''',如地址错误会导致屏幕无显示。

技术规格

  • 模块供电电压:5v
  • 接口: 1个I2C / TWI 两线数据通讯接口,2个gadgeteer接口
  • I2C接口通讯地址:0x20-0x27(出厂默认地址0x20)
  • 背光:蓝色,白色字符
  • 可调节对比度
  • 尺寸: 82x35x18mm
  • 重量: 40g

接口定义

I2C_LCD_Module_V1.1_4.jpg

注意:如果屏幕显示不清晰,请使用十字螺丝刀旋转Contrast ADJ以调节屏幕对比度至能看清即可。

地址设置

短路帽插上为0,拔掉为1。

A2 A1 A0 地址
0 0 0 0x20
0 0 1 0x21
0 1 0 0x22
0 1 1 0x23
1 0 0 0x24
1 0 1 0x25
1 1 1 0x26
1 1 1 0x27

连线图

I2C LCD module V1.2 连线图

请注意V1.2的接口,它与老版本的LCD module的接口不同,请参考历史版本

Mind+(基于Scratch3.0)图形化编程

此模块不需要库,直接使用十六进制代码即可控制,因此可以使用Mind+等图形化程序进行控制。
1、下载及安装软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装
2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程
3、“扩展”中选择“主控板”中的“Arduino Uno”,选择"显示器"中的"LCD1602模块(I2C接口)"。详细教程:Mind+基础wiki教程-加载扩展库流程
4、进行编程,程序如下图:
5、菜单“连接设备”,“上传到设备”

Mind+lcd1602.png

库函数

  • LiquidCrystal()
  • begin()
  • clear()
  • home()
  • setCursor()
  • write()
  • print()
  • cursor()
  • noCursor()
  • blink()
  • noBlink()
  • display()
  • noDisplay()
  • scrollDisplayLeft()
  • scrollDisplayRight()
  • autoscroll()
  • noAutoscroll()
  • leftToRight()
  • rightToLeft()
  • createChar()

示例代码

库文件 Sample code and library

//DFRobot.com
//Compatible with the Arduino IDE 1.0
//Library version:1.1


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup(){

  lcd.init();                      // initialize the lcd
  lcd.backlight();

  lcd.home();

  lcd.print("Hello world...");
  lcd.setCursor(0, 1);
  lcd.print("dfrobot.com");

}

int backlightState = LOW;
long previousMillis = 0;
long interval = 1000;

void loop(){

  unsigned long currentMillis = millis();

  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;

    if (backlightState == LOW)
      backlightState = HIGH;
    else
      backlightState = LOW;

    if(backlightState == HIGH)  lcd.backlight();
    else lcd.noBacklight();
  }
}

如果要使用库自带的样例代码,注意需要修改初始化语句,需要把:
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
改成:
LiquidCrystal_I2C lcd(0x20,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display(All jumpers should be connected!)
因为默认的初始化语句是给LCD1602用的!

相关资料

Arduino I2C LCD库(兼容Arduino IDE 1.0以及以上版本)

LCD数据手册CN

LCD Datasheet

原理图

相关项目

常见问题

1. 此液晶屏默认地址为0x20,需要将初始化液晶显示屏的设备地址改成0x20。
2. 显示出现问题,出现方块无字符或缺少字符

  1. 地址问题 (检查代码里的地址和硬件是否一致或使用库自带的样例代码,注意需要修改初始化语句地址为0x20)
  2. ide版本 (更换其他ide版本,比如1.6.9 或1.0.x系列)
  3. 库文件(更换库文件,可参考

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。 |

老版本维库连接

<File:nextredirectltr.png>购买 IIC/TWI LCD1602液晶模块(SKU:DFR0063)