返回

MicroPython 控制 1602 LCD 显示屏实现一个时钟

esp32

d9c476f8a7396c4acf8dddcf29c6b0b.jpg

1. 什么是 1602 LCD 显示屏?

1602 LCD 显示屏是一种常见的点阵式 LCD 显示屏,具有 16 列和 2 行,能够显示数字、字母和其他字符。它通常用于电子设备中,如计算器、数字时钟和温度计。

2. 如何用 MicroPython 控制 1602 LCD 显示屏?

要使用 MicroPython 控制 1602 LCD 显示屏,我们需要使用 I2C 接口。I2C 是一种串行通信协议,使用两条线来传输数据。我们将使用 MicroPython 内置的 SoftI2C 库来实现 I2C 通信。

首先,我们需要将 1602 LCD 显示屏与 MicroPython 板连接起来。我们将使用 ESP32-DevKitC 开发板作为示例。将 1602 LCD 显示屏的 VCC 引脚连接到 ESP32-DevKitC 的 3.3V 引脚,将 GND 引脚连接到 GND 引脚,将 SDA 引脚连接到 GPIO15 引脚,将 SCL 引脚连接到 GPIO2 引脚。

接下来,我们需要安装 MicroPython 的 esp32_i2c_1602lcd 库。这个库提供了控制 1602 LCD 显示屏的接口。我们可以使用 pip 命令来安装这个库:

pip install esp32_i2c_1602lcd

安装完成后,我们就可以编写 MicroPython 程序来控制 1602 LCD 显示屏了。以下是一个简单的示例程序:

import time
from machine import SoftI2C, Pin, RTC
from esp32_i2c_1602lcd import I2cLcd

DEFAULT_I2C_ADDR = 0x27
i2c = SoftI2C(sda=Pin(15), scl=Pin(2), freq=100000)
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)

rtc = RTC()
current_time = rtc.datetime()
print(current_time)

lcd.clear()
lcd.putstr("{}-{}-{}\n".format(current_time[0], current_time[1], current_time[2]))
lcd.putstr("{}:{}:{}\n".format(current_time[4], current_time[5], current_time[6]))

这个程序将显示当前时间在 1602 LCD 显示屏上。

3. 如何用 MicroPython 实现一个时钟?

我们可以使用 MicroPython 的 RTC 库来实现一个时钟。RTC 库提供了获取和设置系统时间的接口。我们可以使用以下代码来创建一个简单的时钟:

from esp32_i2c_1602lcd import I2cLcd


DEFAULT_I2C_ADDR = 0x27
i2c = SoftI2C(sda=Pin(15), scl=Pin(2), freq=100000)
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)

rtc = RTC()
current_time = rtc.datetime()

second = current_time[6]
while True:
    lcd.clear()
    lcd.putstr("{}-{:02d}-{:02d}\n".format(current_time[0], current_time[1], current_time[2]))
    lcd.putstr("{:02d}:{:02d}:{:02d}\n".format(current_time[4], current_time[5], second))
    second += 1

    if second == 60:
        current_time = rtc.datetime()
        second = 0
  
    time.sleep(1)

这个程序将每秒更新一次时间,并显示在 1602 LCD 显示屏上。

4. 常见问题解答

  1. 如何更改 1602 LCD 显示屏的亮度?

    我们可以通过调节背光引脚的电压来更改 1602 LCD 显示屏的亮度。我们可以使用 PWM 来实现背光引脚的电压调节。

  2. 如何将 1602 LCD 显示屏与其他 MicroPython 板连接?

    我们可以使用相同的 I2C 接口将 1602 LCD 显示屏与其他 MicroPython 板连接。我们需要将 1602 LCD 显示屏的 VCC 引脚连接到 MicroPython 板的 3.3V 引脚,将 GND 引脚连接到 GND 引脚,将 SDA 引脚连接到 MicroPython 板的 I2C SDA 引脚,将 SCL 引脚连接到 MicroPython 板的 I2C SCL 引脚。

  3. 如何使用 MicroPython 控制 1602 LCD 显示屏显示中文?

    我们可以使用 MicroPython 的 font 库来显示中文。font 库提供了显示各种字体的接口。我们可以使用以下代码来显示中文:

    import font
    font.load('msyh.fon')
    lcd.draw_text(10, 10, "你好,世界!", font=font.FONT_MSYH)
    
  4. 如何使用 MicroPython 控制 1602 LCD 显示屏显示图片?

    我们可以使用 MicroPython 的 image 库来显示图片。image 库提供了显示图像的接口。我们可以使用以下代码来显示图片:

    import image
    img = image.open('image.jpg')
    lcd.draw_image(0, 0, img)
    
  5. 如何使用 MicroPython 控制 1602 LCD 显示屏实现触摸功能?

    我们可以使用 MicroPython 的 touch 库来实现触摸功能。touch 库提供了触摸屏的接口。我们可以使用以下代码来实现触摸功能:

    import touch
    touch.init()
    while True:
        touch_event = touch.poll()
        if touch_event:
            x, y = touch_event.x, touch_event.y
            # Do something with the touch event