树莓派通过 I2C 驱动 LCD1602 液晶屏

您所在的位置:网站首页 树莓派初始化黑色屏幕一直在循环 树莓派通过 I2C 驱动 LCD1602 液晶屏

树莓派通过 I2C 驱动 LCD1602 液晶屏

2024-07-15 20:39| 来源: 网络整理| 查看: 265

树莓派通过 I2C 驱动 LCD1602 液晶屏

2020年6月17日 树莓派实验室 未分类 10

LCD 1602 液晶屏模块的使用,之前在「基于PHP探针和Python爬虫的服务器监控」一文中有详细介绍。这个屏幕还有一种 I2C 方式的驱动模块,可以极大的简化接线和驱动程序。下面树莓派实验室将对这个模块的使用做一个介绍。

硬件说明

带 I2C 模块的 1602 屏幕背面如图所示。模块上有一颗可调电阻,用于调节显示的对比度。(购买链接,如果你新拿到一块屏幕无论怎么调试都不见显示,记得调节一下这里)

接线 GND --- GND VCC --- 接树莓派 5V SDA --- I2C 数据 SCL --- I2C 时钟

启用树莓派的I2C功能 sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools sudo raspi-config

按照下面的步骤设置开启 I2C 功能。

重启树莓派。

sudo reboot

然后运行下面的命令看一下是否识别到屏幕。

sudo i2cdetect -y 1

看到地址为 0x27,这说明已经成功连接了 LCD1602 屏幕。接下来就可以用 Python 控制 LCD1602 显示信息了。

编程

这里用到一个驱动程序,将下面的代码保存为 LCD1602.py。

import time import smbus BUS = smbus.SMBus(1) LCD_ADDR = 0x27 BLEN = 1 #turn on/off background light def turn_light(key): global BLEN BLEN = key if key ==1 : BUS.write_byte(LCD_ADDR ,0x08) else: BUS.write_byte(LCD_ADDR ,0x00) def write_word(addr, data): global BLEN temp = data if BLEN == 1: temp |= 0x08 else: temp &= 0xF7 BUS.write_byte(addr ,temp) def send_command(comm): # Send bit7-4 firstly buf = comm & 0xF0 buf |= 0x04 # RS = 0, RW = 0, EN = 1 write_word(LCD_ADDR ,buf) time.sleep(0.002) buf &= 0xFB # Make EN = 0 write_word(LCD_ADDR ,buf) # Send bit3-0 secondly buf = (comm & 0x0F)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3