Arduino中使用I2C通信可直接调用Wire.h库, 这个库允许Arduino链接其他I2C设备, 链接线有两条, 分别是SDA(数据行)和SCI(时钟线). 各型号Arduino的I2C对应引脚:

Arduino Board:I2C / TWI pins

Arduino Uno/Ethernet:A4 (SDA), A5 (SCL)

Arduino Mega2560:20 (SDA), 21 (SCL)

Arduino Leonardo:2 (SDA), 3 (SCL)

Arduino Due:20 (SDA), 21 (SCL), SDA1, SCL1

一般购买到的是分开的两个组件, 需要按下图这样将PCF8574T焊接到1602LCD上

PCF8574T模块4pin(Gnd, Vcc, SDA i2c数据, SCL i2c时钟)和Arduino接口的对应关系: Gnd -> Gnd, Vcc -> Vcc, SDA -> A4, SDL -> A5

获取I2C地址

#include

voidsetup() {

Serial.begin (115200); //Leonardo: wait for serial port to connect

while (!Serial) { }

Serial.println ();

Serial.println ("I2C scanner. Scanning ...");byte count = 0;

Wire.begin();for (byte i = 8; i < 120; i++) {

Wire.beginTransmission (i);if (Wire.endTransmission () == 0) {

Serial.print ("Found address:");

Serial.print (i, DEC); Serial.print ("(0x");

Serial.print (i, HEX); Serial.println (")");

count++; delay (1); //maybe unneeded?

} //end of good response

} //end of for loop

Serial.println ("Done.");

Serial.print ("Found");

Serial.print (count, DEC);

Serial.println ("device(s).");

}//end of setup

void loop() {}

运行时, 打开Serial Monitor, 将波特率设为115200, 看到的输出就是I2C地址

自带LiquidCrystal_I2C显示测试

在运行显示测试前检查是否已经安装了library: LiquidCrystal, LiquidCrystal_I2C

#include #include

//I2C地址, 一般为0x3F, 0x20或0x27

LiquidCrystal_I2C lcd(0x27,16,2);voidsetup() {

lcd.init();

lcd.backlight();//打开背光

}voidloop() {

lcd.setCursor(0,0);

lcd.print("LCD1602 iic Test");

lcd.setCursor(0,1);

lcd.print("0123456789ABCDEF");

delay(1000);

}

如果屏幕亮但是无显示, 可以调节背后的电位器让字符显示到合适的对比度.

第三方New LiquidCrystal显示测试

#include #include#includeLiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); //0x27 is the I2C bus address for an unmodified backpack

void setup() { //activate LCD module

lcd.begin (16,2); //for 16 x 2 LCD module

lcd.setBacklightPin(3,POSITIVE);

lcd.setBacklight(HIGH);

}voidloop() {

lcd.home ();//set cursor to 0,0

lcd.print("HELLO WORLD....");

lcd.setCursor (0,1); //go to start of 2nd line

lcd.print(millis());

delay(1000);

lcd.setBacklight(LOW);//Backlight off

delay(1000);

lcd.setBacklight(HIGH);//Backlight on

}

供电和耗电测试

硬件是Arduino NANO + 扩展板 + PCF8574T + 1602LCD, 使用输入电压12V. 扩展板本身不带IC, 只有一个电源LED, 功耗可以忽略. 在使用自带的LiquidCrystal_I2C库跑上面的测试代码时, 测得的功耗仅为0.95W左右.

python arduino i2c1602_Arduino通过I2C(PCF8574T)驱动1602LCD相关推荐

  1. Arduino通过I2C(PCF8574T)驱动1602LCD

    Arduino中使用I2C通信可直接调用Wire.h库, 这个库允许Arduino链接其他I2C设备, 链接线有两条, 分别是SDA(数据行)和SCI(时钟线). 各型号Arduino的I2C对应引脚 ...

  2. python arduino i2c1602_Arduino通过I2C控制1602LCD显示屏

    Arduino通过I2C控制1602LCD显示屏 Arduino通过I2C控制1602LCD显示屏 [var1] 对比度太高,实际输出了文字但是无法看到,需要弄螺丝刀电位器,此外出错原因还有地址不对, ...

  3. python arduino i2c1602_Arduino 将1602液晶显示屏改造为IIC接口

    原来的1602是这样的: image.png 连接到Arduino上需要接好多线,于是买了块IIC的板子改成IIC接口,就是这货: 由于Arduino的I/O口数量有限,如果直接用Arduino的I/ ...

  4. python arduino i2c1602_Arduino基础入门—3.连接 IIC 1602 LCD显示文字

    1. IIC转接板介绍 Arduino Uno R3开发板的外部IO口是非常有限的.在驱动LCD1602时,尽管我们的数据线使用了4线,相对于8线方式减少一半,但是在需要外接多种传感器的应用中,4线驱 ...

  5. 普冉PY32系列(六) 通过I2C接口驱动PCF8574扩展的1602LCD

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  6. linux下i2c设备驱动程序,Linux I2C 设备驱动

    I2C 设备驱动要使用 i2c_driver 和 i2c_client 数据结构并填充其中的成员函数.i2c_client 一般被包含在设备的私有信息结构体yyy_data 中,而 i2c_drive ...

  7. SylixOS iMX6平台I2C总线驱动

    原理概述 I2C总线驱动概述 I2C总线驱动是I2C适配器的软件实现,提供I2C适配器与从设备间完成数据通信的能力,比如起始,停止,应答信号和MasterXfer的实现函数.驱动程序包含初始化I2C总 ...

  8. I2C从驱动到应用(中篇)

    Linux中对I2C的支持非常全面,既提供了内核态的访问方式,也提供了用户态的访问方法. Linux中对I2C的支持可以分为两个层面,一个是adapter和algorithm,对应的是i2c控制器:再 ...

  9. Linux I2C子系统分析-I2C设备驱动

    接下来以一个实际的例子来看I2C设备驱动,就以drivers/i2c/i2c-dev.c为例. 先看它的初始化和注销函数 [cpp] view plaincopy static int __init  ...

最新文章

  1. 介绍一下android的事件分发机制
  2. PHP图片裁剪_图片缩放_PHP生成缩略图
  3. WIN10下gnuplot 的安装
  4. 【JavaWeb】已解决:Resource interpreted as Stylesheet but transferred with MIME type text/html
  5. 8266串口调试助手_200行Python代码实现串口调试助手(2) 界面构建
  6. Linux 之 编译器 gcc/g++参数详解
  7. Windows核心编程学习笔记
  8. [工具] Numpy
  9. 【OpenCV学习笔记】【函数学习】十二(cvCanny()函数及其阈值设置的比较)
  10. 用java写蒙特卡洛模拟_java实现蒙特卡洛模拟求解渗透问题
  11. 计算机基础中的word2010,计算机基础word2010上机操作 - 图文
  12. uniapp使用企业微信SDK踩坑指南
  13. 计算机能不能升级固态硬盘,老电脑可以用固态硬盘吗?老电脑升级安装固态硬盘的注意事项...
  14. 我的滑板鞋-2017年在魅力之都继续摩擦
  15. 系统集成项目管理工程师高频考点(第八章)
  16. 一个开心网用户对开心网的分析
  17. 【干货】蚂蚁前端研发最佳实践
  18. 过渡、变形 transform、3d变形、关键帧动画13
  19. 给青海玉树捐款账号是什么--百度快照查看
  20. Android Socket 遇到的Soure Not Find 错误

热门文章

  1. 淘宝支付页面代码php,支付页面html模板
  2. java gettext用法_Java Context.getText方法代码示例
  3. rg1 蓝光危害rg0_LED(护眼)台灯|蓝光那些事
  4. mysql时间戳在某天内_mysql根据时间戳查询指定日期内数据
  5. mpvue 调起子组件的方法_什么是锦鲤PH值,PH调整方法有哪些?
  6. 按钮的android程序闪退,Android实例化控件有什么特殊要求吗??怎么程序加了这一段之后就闪退。。...
  7. Java黑皮书课后题第2章:*2.23(驾驶费用)编写一个程序,提示用户输入驾驶的距离、每加仑多少英里的汽车燃油性能值,以及每加仑的价格,然后显示旅程的费用
  8. 【2012百度之星 / 资格赛】I:地图的省钱计划
  9. OpenCV2:幼儿园篇 第一章 创建图像并显示
  10. ES7和ES8的了解