这个触摸开关模块(TTP223电容式触摸传感器)操作非常直观。模块表面印有类似指纹的感应区域,只需手指轻轻触碰即可触发,工作电压范围支持2V至5.5V。模块总共只有三个引脚——GND接地、VCC接电源、SIG负责输出数字信号,非常适合与树莓派Pico等微控制器配合使用。

import machine
import utime
touch_switch = machine.Pin(2, machine.Pin.IN)
led_board = machine.Pin(25, machine.Pin.OUT)
while True:
led_board.value(touch_switch.value())
utime.sleep(0.01)
实际运行效果非常直观:手指触摸模块时,LED点亮;手指离开,LED立即熄灭。逻辑很简单——SIG引脚输出高电平时LED亮,低电平时LED灭。
然而,很多项目需要另一种操作逻辑:触摸一次点亮LED并保持常亮,再触摸一次熄灭。这就需要引入中断机制来实现状态切换。
import machine
import utime
touch_switch = machine.Pin(2, machine.Pin.IN)
touch = False
def toggle_handler(pin):
global touch
touch = not touch
touch_switch.irq(trigger=machine.Pin.IRQ_RISING, handler=toggle_handler)
led_board = machine.Pin(25, machine.Pin.OUT)
while True:
led_board.value(touch)
utime.sleep(0.01)
这段代码的核心思路是:利用中断捕获GP2引脚从低电平跳变到高电平的瞬间,每次触发都会反转布尔变量`touch`的值。LED的状态完全由该变量控制,从而实现触摸一次点亮,再触摸一次熄灭的完整功能。
值得留意的是:如果你使用的是树莓派Pico W开发板,其板载LED对应的引脚编号并非GP25。需要做如下修改:
led_board = machine.Pin("LED", machine.Pin.OUT)
给树莓派Pico上电之后,音乐会开始播放。