一、目的
这一节我们学习如何运用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏停止LVGL图形化编程:控件显现。
二、环境
ESP32 + ILI9341 3.2寸TFT-LCD触摸屏+ Thonny IDE + 几根杜邦线
接线办法:见前面文章。
三、滑杆代码
import lvgl as lv
import time
from espidf import VSPI_HOST
from ili9XXX import ili9341
from xpt2046 import xpt2046
import fs_driver
# ------------------------------ 屏幕初始化操作 --start------------------------
# 屏幕宽高
WIDTH = 240
HEIGHT = 320
# 创立显现屏对象
disp = ili9341(miso=19, mosi=23, clk=18, cs=5, dc=26, rst=27, power=14, backlight=-1, backlight_on=0, power_on=0, rot=0x80,
spihost=VSPI_HOST, mhz=60, factor=16, hybrid=True, width=WIDTH, height=HEIGHT,
invert=False, double_buffer=True, half_duplex=False, initialize=True)
# 创立触摸屏对象
touch = xpt2046(cs=25, spihost=VSPI_HOST, mosi=-1, miso=-1, clk=-1, cal_y0 = 423, cal_y1=3948) # 触摸屏芯片型号xpt2046
# ------------------------------ 屏幕初始化操作 --stop------------------------
# 1. 创立显现screen对象。将需求显现的组件添加到这个screen才干显现
scr = lv.obj() # scr====> screen 屏幕
fs_drv = lv.fs_drv_t()
fs_driver.fs_register(fs_drv, 'S')
scr = lv.scr_act()
scr.clean()
# 2. 封装要显现的组件
class MyWidget():
def __init__(self, scr):
# 创立滑块slider组件
self.slider = lv.slider(scr)
self.slider.set_width(180) # 设置滑块的长度
# self.slider.set_range(10, 50) # 默许值是0-100
self.slider.center() # 在窗口的中间位置
self.slider.add_event_cb(self.slider_event_cb, lv.EVENT.VALUE_CHANGED, None) # 添加事情的回调函数
# 创立一个标签label
self.label = lv.label(scr)
self.label.set_text("0") # 默许值
self.label.align_to(self.slider, lv.ALIGN.OUT_TOP_MID, 0, -15) # label的中间与滑块的上外边框中间对齐,然后y向上15像素 x不变
def slider_event_cb(self, evt):
slider = evt.get_target()
# 修正label的值
self.label.set_text(str(slider.get_value()))
# 3. 创立要显现的组件
MyWidget(scr)
# 4. 显现screen对象中的内容
lv.scr_load(scr)
# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------
try:
from machine import WDT
wdt = WDT(timeout=1000) # enable it with a timeout of 2s
print("提示: 按下键盘Ctrl+C键完毕程序")
while True:
wdt.feed()
time.sleep(0.9)
except KeyboardInterrupt as ret:
print("程序中止运转,ESP32曾经重启...")
time.sleep(10)
一、目的
这一节我们学习如何运用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏停止LVGL图形化编程:控件显现。
二、环境
ESP32 + ILI9341 3.2寸TFT-LCD触摸屏+ Thonny IDE + 几根杜邦线
接线办法:见前面文章。
三、滑杆代码
import lvgl as lv
import time
from espidf import VSPI_HOST
from ili9XXX import ili9341
from xpt2046 import xpt2046
import fs_driver
# ------------------------------ 屏幕初始化操作 --start------------------------
# 屏幕宽高
WIDTH = 240
HEIGHT = 320
# 创立显现屏对象
disp = ili9341(miso=19, mosi=23, clk=18, cs=5, dc=26, rst=27, power=14, backlight=-1, backlight_on=0, power_on=0, rot=0x80,
spihost=VSPI_HOST, mhz=60, factor=16, hybrid=True, width=WIDTH, height=HEIGHT,
invert=False, double_buffer=True, half_duplex=False, initialize=True)
# 创立触摸屏对象
touch = xpt2046(cs=25, spihost=VSPI_HOST, mosi=-1, miso=-1, clk=-1, cal_y0 = 423, cal_y1=3948) # 触摸屏芯片型号xpt2046
# ------------------------------ 屏幕初始化操作 --stop------------------------
# 1. 创立显现screen对象。将需求显现的组件添加到这个screen才干显现
scr = lv.obj() # scr====> screen 屏幕
fs_drv = lv.fs_drv_t()
fs_driver.fs_register(fs_drv, 'S')
scr = lv.scr_act()
scr.clean()
# 2. 封装要显现的组件
class MyWidget():
def __init__(self, scr):
# 创立滑块slider组件
self.slider = lv.slider(scr)
self.slider.set_width(180) # 设置滑块的长度
# self.slider.set_range(10, 50) # 默许值是0-100
self.slider.center() # 在窗口的中间位置
self.slider.add_event_cb(self.slider_event_cb, lv.EVENT.VALUE_CHANGED, None) # 添加事情的回调函数
# 创立一个标签label
self.label = lv.label(scr)
self.label.set_text("0") # 默许值
self.label.align_to(self.slider, lv.ALIGN.OUT_TOP_MID, 0, -15) # label的中间与滑块的上外边框中间对齐,然后y向上15像素 x不变
def slider_event_cb(self, evt):
slider = evt.get_target()
# 修正label的值
self.label.set_text(str(slider.get_value()))
# 3. 创立要显现的组件
MyWidget(scr)
# 4. 显现screen对象中的内容
lv.scr_load(scr)
# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------
try:
from machine import WDT
wdt = WDT(timeout=1000) # enable it with a timeout of 2s
print("提示: 按下键盘Ctrl+C键完毕程序")
while True:
wdt.feed()
time.sleep(0.9)
except KeyboardInterrupt as ret:
print("程序中止运转,ESP32曾经重启...")
time.sleep(10)
一、目的
这一节我们学习如何运用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏停止LVGL图形化编程:控件显现。
二、环境
ESP32 + ILI9341 3.2寸TFT-LCD触摸屏+ Thonny IDE + 几根杜邦线
接线办法:见前面文章。
三、滑杆代码
import lvgl as lv
import time
from espidf import VSPI_HOST
from ili9XXX import ili9341
from xpt2046 import xpt2046
import fs_driver
# ------------------------------ 屏幕初始化操作 --start------------------------
# 屏幕宽高
WIDTH = 240
HEIGHT = 320
# 创立显现屏对象
disp = ili9341(miso=19, mosi=23, clk=18, cs=5, dc=26, rst=27, power=14, backlight=-1, backlight_on=0, power_on=0, rot=0x80,
spihost=VSPI_HOST, mhz=60, factor=16, hybrid=True, width=WIDTH, height=HEIGHT,
invert=False, double_buffer=True, half_duplex=False, initialize=True)
# 创立触摸屏对象
touch = xpt2046(cs=25, spihost=VSPI_HOST, mosi=-1, miso=-1, clk=-1, cal_y0 = 423, cal_y1=3948) # 触摸屏芯片型号xpt2046
# ------------------------------ 屏幕初始化操作 --stop------------------------
# 1. 创立显现screen对象。将需求显现的组件添加到这个screen才干显现
scr = lv.obj() # scr====> screen 屏幕
fs_drv = lv.fs_drv_t()
fs_driver.fs_register(fs_drv, 'S')
scr = lv.scr_act()
scr.clean()
# 2. 封装要显现的组件
class MyWidget():
def __init__(self, scr):
# 创立滑块slider组件
self.slider = lv.slider(scr)
self.slider.set_width(180) # 设置滑块的长度
# self.slider.set_range(10, 50) # 默许值是0-100
self.slider.center() # 在窗口的中间位置
self.slider.add_event_cb(self.slider_event_cb, lv.EVENT.VALUE_CHANGED, None) # 添加事情的回调函数
# 创立一个标签label
self.label = lv.label(scr)
self.label.set_text("0") # 默许值
self.label.align_to(self.slider, lv.ALIGN.OUT_TOP_MID, 0, -15) # label的中间与滑块的上外边框中间对齐,然后y向上15像素 x不变
def slider_event_cb(self, evt):
slider = evt.get_target()
# 修正label的值
self.label.set_text(str(slider.get_value()))
# 3. 创立要显现的组件
MyWidget(scr)
# 4. 显现screen对象中的内容
lv.scr_load(scr)
# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------
try:
from machine import WDT
wdt = WDT(timeout=1000) # enable it with a timeout of 2s
print("提示: 按下键盘Ctrl+C键完毕程序")
while True:
wdt.feed()
time.sleep(0.9)
except KeyboardInterrupt as ret:
print("程序中止运转,ESP32曾经重启...")
time.sleep(10)
一、目的
这一节我们学习如何运用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏停止LVGL图形化编程:控件显现。
二、环境
ESP32 + ILI9341 3.2寸TFT-LCD触摸屏+ Thonny IDE + 几根杜邦线
接线办法:见前面文章。
三、滑杆代码
import lvgl as lv
import time
from espidf import VSPI_HOST
from ili9XXX import ili9341
from xpt2046 import xpt2046
import fs_driver
# ------------------------------ 屏幕初始化操作 --start------------------------
# 屏幕宽高
WIDTH = 240
HEIGHT = 320
# 创立显现屏对象
disp = ili9341(miso=19, mosi=23, clk=18, cs=5, dc=26, rst=27, power=14, backlight=-1, backlight_on=0, power_on=0, rot=0x80,
spihost=VSPI_HOST, mhz=60, factor=16, hybrid=True, width=WIDTH, height=HEIGHT,
invert=False, double_buffer=True, half_duplex=False, initialize=True)
# 创立触摸屏对象
touch = xpt2046(cs=25, spihost=VSPI_HOST, mosi=-1, miso=-1, clk=-1, cal_y0 = 423, cal_y1=3948) # 触摸屏芯片型号xpt2046
# ------------------------------ 屏幕初始化操作 --stop------------------------
# 1. 创立显现screen对象。将需求显现的组件添加到这个screen才干显现
scr = lv.obj() # scr====> screen 屏幕
fs_drv = lv.fs_drv_t()
fs_driver.fs_register(fs_drv, 'S')
scr = lv.scr_act()
scr.clean()
# 2. 封装要显现的组件
class MyWidget():
def __init__(self, scr):
# 创立滑块slider组件
self.slider = lv.slider(scr)
self.slider.set_width(180) # 设置滑块的长度
# self.slider.set_range(10, 50) # 默许值是0-100
self.slider.center() # 在窗口的中间位置
self.slider.add_event_cb(self.slider_event_cb, lv.EVENT.VALUE_CHANGED, None) # 添加事情的回调函数
# 创立一个标签label
self.label = lv.label(scr)
self.label.set_text("0") # 默许值
self.label.align_to(self.slider, lv.ALIGN.OUT_TOP_MID, 0, -15) # label的中间与滑块的上外边框中间对齐,然后y向上15像素 x不变
def slider_event_cb(self, evt):
slider = evt.get_target()
# 修正label的值
self.label.set_text(str(slider.get_value()))
# 3. 创立要显现的组件
MyWidget(scr)
# 4. 显现screen对象中的内容
lv.scr_load(scr)
# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------
try:
from machine import WDT
wdt = WDT(timeout=1000) # enable it with a timeout of 2s
print("提示: 按下键盘Ctrl+C键完毕程序")
while True:
wdt.feed()
time.sleep(0.9)
except KeyboardInterrupt as ret:
print("程序中止运转,ESP32曾经重启...")
time.sleep(10)