把LiquidCrystal lcd(12, 11, 5, 4, 3, 2);中的12,11,改了,这是数字端口11,12,对应lcd1602 EN使能,RS读写,你改用其它端口,这两个端口不要与其它器件共用。
原来的1602是这样的:
连接到Arduino上需要接好多线,于是买了块IIC的板子改成IIC接口,就是这货:
由于Arduino的I/O口数量有限,如果直接用Arduino的I/O口直接驱动LCD1602/2004这样会占用较多的I/O口资源也不利于连接更多的其他设备。IIC LCD1602/2004转接板可以大大减少需要使用IO接口,原来的1602/2004屏需要7(RS、RW、E、D4~D7)个IO口才能驱动起来,而这个模块可以省去5个IO口。
模块采用PCF8574,它通过两条双向总线(I2C)可使大多数 MCU 实现远程 I/O口扩展。该器件包含一个 8 位准双向口和一个I2C总线接口。PCF8574 电流消耗很低,且口输出锁存具有大电流驱动能力,可直接驱动 LED。它还带有一条中断接线(INT开漏输出)可与 MCU 的中断逻辑相连。通过 INT 发送中断信号, 远端 I/O 口不必经过 I2C 总线通信就可通知 MCU 是否有数据从端口输入。
但是这块板子也是插针,要想连接1602的化,需要通过面包板才行,这个不能忍,于是开始拆拆拆。
将原1602的排针拆除,直接焊接IIC转接板。说起来简单,实际 *** 作时发现拆除排针还是需要一定的技术的,最终拆的一团糟,一度以为板子拆坏了。
焊上转接板发现只有背光灯是亮的,查了半天发现是对比度的问题
使用小螺丝刀调节该电位器,从而调节对比度,1602显示屏显示。
大功告成,焊工依然很烂!
PS:
I2C github库
>
时时钟具有能计算2100 年之前的秒、分、时、日、星期、月、年的能力,还有闰年调整的能力
★ 31 8 位暂存数据存储RAM
★ 串行 I/O 口方式使得管脚数量最少
★ 宽范围工作电压20 55V
★ 工作电流 20V 时,小于300nA
★ 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式
★ 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配
★ 简单 3 线接口
digitalWrite(i, (value >> i) & 0x01);
应该是在一个循环里面的,i是循环变量。
“value >> i”是把value的值每次都右移i位
“&0x01”是取最低位的值。
举例:
value=0x12, 二进制就是00010010,
如果i=1, “value >> i”后的值为00001001, “&0x01”后就得1了,相当于digitalWrite(1, 1);
如果i=2, “value >> i”后的值为00000100, “&0x01”后就得0了,相当于digitalWrite(2, 0);
以上就是关于利用Arduino实时监测温湿度怎么弄,最好能显示在1602上全部的内容,包括:利用Arduino实时监测温湿度怎么弄,最好能显示在1602上、Arduino 将1602液晶显示屏改造为IIC接口、如何用ARDUINO UNO+1602+DS1302做电子时钟等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)