问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

树莓派LCD1206显示屏实验

创作时间:
2025-03-27 12:22:43
作者:
@小白创作中心

树莓派LCD1206显示屏实验

引用
CSDN
1.
https://blog.csdn.net/m0_74057293/article/details/142591750

树莓派LCD1206显示屏实验

前言

在实现了树莓派的烧入与环境搭建后,代码的实现结果只能通过所连接的显示器作为输出,并不方便获取其中的某些参数数据。因此,寻找一个能够良好作为树莓派显示输出的显示屏则很重要。LCD1206作为树莓派的显示输出具有多方面的优势,包括高显示质量、接口简单可靠、功耗低、易于编程和控制、扩展性好以及成本效益等。因此这次实验选取的显示器为LCD1206。

1.配置准备

1.1 必要的库导入

smbus库是Python的一个扩展库,它提供了对I2C总线的访问和操作功能,使得Python代码能够读写I2C设备的数据。

pip install smbus

1.2 器材准备

  • Raspberry Pi 5主板 *1
  • 树莓派电源适配器
  • 40P软排线
  • IIC LCD1206液晶模块
  • 面包板
  • 跳线

1.3 原理说明

LCD1602是一个常用的LCD,可以连接到各种设备,例如Raspberry Pi。为降低接线的复杂度和操作的便利性加上了PCF8574模块,通过该模块,可以实现树莓派与LCD1206的信号交互,驱动LCD显示对应的字符。

本实验中,I2C LCD1206的I2C从地址为0x27。

2. 电路连接

2.1 建立电路

树莓派
T型转接板
I2C LCD1206
SCL(GPIO3)
SCL
SCL
SDA (GPIO2)
SDA
SDA
5V
5V
VCC
GND
GND
GND

2.2 接线结果

连接完线路,LCD显示屏即亮起。若是屏幕亮度过量,该LCD1206后有电位器可以调节亮度,调节使得达到能够看到两行格子。

3. Python实现代码

3.1 总代码

import time
import smbus
from time import sleep
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) << 4
    buf |= 0x04               # RS = 0, RW = 0, EN = 1
    write_word  
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号