LCD1602液晶屏 带I2C接口

为什么使用I2C接口?因为省IO口啊,只需要4条线,可以看看之前发的实验,接线多复杂呀,对吧。

(传送门:Arduino携手LCD1602 向世界问好“hello World!”)

还有背光灯,和可调节对比度(就是背面蓝色那块可以旋转的调)

具体怎么实现解决问题,请往下看

引脚说明

GND ------ 地线

VCC ------ 电源(5V or 3.3v 电源不同显示效果有点差别)

SDA ------ I2C 数据线

SCL ------ I2C 时钟线

接线方法

LCD1602 i2c模块                         Ardunio Uno

GND                           <------>        GND接地线

VCC                           <------>         5V 接电源

SDA                            <------>         A4

SCL                            <------>         A5

程序实现

需要用到LCD1602 I2C的库,下载地址是 https://github.com/marcoschwartz/LiquidCrystal_I2C

把下载的库放到Arduino的库里(PS:不懂库是啥?请点击这里

程序和库打包下载:https://u16460183.ctfile.com/fs/16460183-295783929

文件夹说明:
LiquidCrystal_I2C-master     ——LCD1602 I2C库(库需要复制在arduino的库目录里)
LS_LCD1602                       ——主程序

//LingShun lab
#include <Wire.h>
#include <LiquidCrystal_I2C.h> //引用I2C库//设置LCD1602设备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册
LiquidCrystal_I2C lcd(0x3F,16,2);  void setup()
{lcd.init();                  // 初始化LCDlcd.backlight();             //设置LCD背景等亮
}void loop()
{lcd.setCursor(0,0);                //设置显示指针lcd.print("LCD1602 iic Test");     //输出字符到LCD1602上lcd.setCursor(0,1);lcd.print("         by L.L.");delay(1000);
}

实例效果

问题解疑

是一个模块还是两个模块?

这模块是通过LCD1602屏 和 LCD1602 I2C 模块 焊接结合的,可以直接买焊接好的,也可以分开买,不过就需要点动手能力。

无法正常显示?

刚上电的时候,老是显示一个个方块,如图

这情况一般是地址错误,我根据说明上写的地址0x20,0x27 都试了个遍还是无法正常显示

后来通过一网友的帖子把这问题给解决了,

贴出了一个寻找设备地址的代码 (来源:Arduino驱动IIC/I2C LCD1602模块显示(4根线解决连接))

#include <Wire.h>void setup(){Wire.begin();Serial.begin(9600);Serial.println("\nI2C Scanner");
}
void loop(){byte error, address;int nDevices;Serial.println("Scanning...");nDevices = 0;for (address = 1; address < 127; address++ ){// The i2c_scanner uses the return value of// the Write.endTransmisstion to see if// a device did acknowledge to the address.Wire.beginTransmission(address);error = Wire.endTransmission();if (error == 0){Serial.print("I2C device found at address 0x");if (address < 16)Serial.print("0");Serial.print(address, HEX);Serial.println(" !");nDevices++;}else if (error == 4){Serial.print("Unknow error at address 0x");if (address < 16)Serial.print("0");Serial.println(address, HEX);}}if (nDevices == 0)Serial.println("No I2C devices found\n");elseSerial.println("done\n");delay(5000); // wait 5 seconds for next scan
}

把模块按接线方法接好,上传这段代码后,打开端口监视器,就能找到在I2C上的设备地址,大家可以试试哦

Arduino 和LCD1602液晶屏 I2C接口实验相关推荐

  1. Arduino 和LCD1602液晶屏 I2C接口 万年历时钟可调

    引脚说明 GND ------ 地线 VCC ------ 电源(5V or 3.3v 电源不同显示效果有点差别) SDA ------ I2C 数据线 SCL ------ I2C 时钟线 接线方法 ...

  2. 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  3. 通过 I2C 驱动 LCD1602 液晶屏(51单片机)

    通过 I2C 驱动 LCD1602 液晶屏(51单片机) 硬件实物 原理图 3.程序 #include <reg51.h> #include <intrins.h>#defin ...

  4. 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏

    偶然心血来潮,想要做一个音乐可视化的系列专题.这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累 ...

  5. 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】

    文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...

  6. Proteus仿真-LCD1602液晶屏使用方法(驱动一)

    一.硬件链接 在元件库中搜索LM016即可找到LCD1602液晶屏. 按下图方式链接单片机和屏幕. 二.软件驱动代码 //屏幕相关引脚接口定义 #define D P0 sbit E=P2^6; sb ...

  7. LCD1602液晶屏使用(51单片机七夕特别版)

    LCD1602液晶屏使用(51单片机七夕特别版) LCD1602简介 实现过程 操作时序 指令码 如何改变文本的样式 代码 效果图 今天是七夕节,周围的朋友啊小姐妹(伪)啊都跟对象出去玩了 囧rz,而 ...

  8. 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)

    目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...

  9. stm32 arduino 驱动jlx液晶屏

    stm32 arduino 驱动jlx液晶屏 1.说明 单片机这次用的是STM32F103C8T6,烧成arduino用,库还是我们的老朋友u8g2.液晶屏型号是JLX 240160G-676,SPI ...

  10. 液晶屏MIPI接口与LVDS接口区别(总结)

    液晶屏接口类型有LVDS接口.MIPI DSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是 ...

最新文章

  1. 2020年五大虚拟现实和增强现实趋势
  2. HBase在淘宝的应用和优化
  3. Java中重载(overload)和重写(override)
  4. 易语言服务器不在一个网段,设置二级路由器保持局域网在同一个网段
  5. hdu2243考研路茫茫——单词情结
  6. [tp3.2.1]让默认页面: 加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器....
  7. (转)EOSIO开发(四)- nodeos、keosd与cleos
  8. PHP和js做分页功能,php+js实现分页
  9. 旧电脑 软路由 openwrt 自定义安装ipk 操作记录
  10. 电子元件知识汇总2-封装
  11. 对辛辛那提原始数据集(ims)数据划分正常,内圈故障,滚动体故障,外圈故障(python代码),可作为自己故障诊断模型实验的另一个数据集(因为CWRU普遍而言,准确度和被使用频率已经极高)
  12. 基于tf-openpose的动作识别实现街头霸王5对战项目
  13. 中式红木整装塑造出中式家居的浪漫氛围
  14. 机器学习入门——鸢尾花问题
  15. 【PMP】燃起图燃尽图分析
  16. Java开发环境的搭建—Java JDK的下载与安装!
  17. 游戏设计模式之策略模式(二)
  18. 访问学者在新加坡访学生活日常花销大吗?
  19. AI配音 | 收藏了3个国内能用靠谱还纯免费的AI配音方法
  20. Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))

热门文章

  1. segno-纯Python语言的二维码和微二维码生成器
  2. APISpace 二维码生成器API
  3. mysql的七种查询命令_MySQL数据库查询指令大全
  4. Java程序员“金三银四“就一定要出去面试吗?
  5. 最好的都在这里了 2016上半年电影豆瓣口碑排行榜
  6. 2019/04/15 在调试https://blog.csdn.net/hjw2719/article/details/83473199中程序时出现的问题
  7. 再见2020,你好2021
  8. 高中数学关于计算机的知识,高中数学必修三-算法概念基础知识解读
  9. echarts饼图自动动画_echarts实时旋转饼图效果特效
  10. JavaEE 13个核心规范