吃白菜一样用micropython玩esp32(三) 您所在的位置:网站首页 esp按键用不用按 吃白菜一样用micropython玩esp32(三)

吃白菜一样用micropython玩esp32(三)

2023-08-27 14:53| 来源: 网络整理| 查看: 265

触摸控制

下面介绍如何外部地控制灯的亮灭,我采用esp32里面的触摸按键资源,实现触摸控制开关,一摸灯就亮。先上代码:

from machine import TouchPad, Pin #引入touchpad模块 from time import sleep led = Pin(12,Pin.OUT) #在12脚外接一个led灯,也可利用板子自带led touch_pin = TouchPad(Pin(14)) #定义14脚为触摸脚 while True: touch_value = touch_pin.read() print(touch_value) #打印出14脚感应的值 if touch_value > 500 : #若读取的值大于阀值,则为没触摸 led.value(0) else: led.value(1) #触摸则灯亮 sleep(0.5) #延时0.5秒,实现每0.5秒判断一次触摸状态

在这里插入图片描述

其实很简单的,如果看过我的前两节,这个代码都不需要解释,就是多引入了一个Touchpad模块,然后把14脚定义为触摸脚。在主循环中,sleep(0.5)定义了每0.5秒就读取一次14脚的数据,然后通过串口打印出来,在upycraft下面的框应该能看到每0.5秒出现一个值,通过对比触摸14脚与否的数值自己定义阀值,用于if函数的判断,实现触摸控制。 若熟悉了代码,完全可以升级一下代码实现双稳态控制,即摸一下就可以改变灯的亮灭;或再升级一下实现双击或长按等功能,然后与前面的呼吸跑马灯结合起来,就很酷了。 这讲的触摸控制跟按键控制实现的效果一模一样,只是我觉得按键太简单,触摸好玩一点哈哈。

附上esp32的引脚图: 在这里插入图片描述 可以看到我的14引脚不是乱设的,esp32的引脚只有8个支持touch,就是上面的T0-T7,我们还可以发现有各种AD、DA、SD等功能,等着你去玩耍。

ADC

下面我们来看一个有趣的ADC实验,即模拟和数字的转换。效果是通过旋转电位器从而控制灯的亮度,这是呼吸灯的升级版:

from machine import Pin, PWM, ADC #引入ADC模块 from time import sleep frequency = 5000 led = PWM(Pin(12), frequency) pot = ADC(Pin(34)) #定义34脚为ADC脚,可以读取模拟电压 pot.width(ADC.WIDTH_12BIT) #读取的电压转为0-4096 pot.atten(ADC.ATTN_11DB) #输入电压0-3.3v while True: pot_value = pot.read() //4 #使读取的电压变为0-1024 print(pot_value) #打印出读取到的电压以便调试 if pot_value


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有