micro:bit MicroPython IO 引脚指南:Pin 模块数字/模拟输入输出快速上手
发布时间:2026/8/24 17:53:05 作者:尧图编辑部 阅读量:1,286

micro:bit MicroPython IO 引脚指南Pin 模块数字/模拟输入输出快速上手【免费下载链接】micropythonPort of MicroPython for the BBC micro:bit项目地址: https://gitcode.com/gh_mirrors/mic/micropython本文为 micro:bit 硬件入门者讲解 MicroPython 官方移植版中 Pin 模块microbit.pin0至pin20的数字与模拟输入输出IO用法带你快速上手引脚读取、LED 点亮、触摸感应和 PWM 调光等核心操作。认识 micro:bit 引脚布局Pin 编号速查micro:bit 板子边缘共有19 个引脚可用编号为 0–16 和 19–2017、18 不可用。每个引脚在代码中都直接对应microbit模块的一个属性无需任何初始化即可使用。各引脚类型速查引脚类型板载连接0 / 1 / 2触摸 模拟金属触点 Pad 0–23 / 4模拟点阵屏 Col 1 / Col 25数字按钮 A6 / 7 / 9数字点阵屏 Col 8 / 9 / 78 / 12 / 16数字空闲推荐新手使用10模拟点阵屏 Col 311数字按钮 B13 / 14 / 15数字SPI SCK / MISO / MOSI19 / 20数字I2C SCL / SDA 新手建议优先使用pin8、pin12、pin16这三个完全空闲的引脚做实验避免与点阵屏、按钮冲突。三种引脚类型Digital、Analog、TouchMicroPython 用三个类区分引脚能力source/microbit/microbitpin.cppMicroBitDigitalPin纯数字引脚read_digital()/write_digital()MicroBitAnalogDigitalPin模拟数字引脚如 pin3/4/10额外支持read_analog()MicroBitTouchPin触摸引脚 pin0–2额外支持is_touched()所有引脚都支持 PWM 输出write_analog()三者功能层层递进。数字输入读取按钮与开关状态read_digital()返回1高电平或0低电平。官方文档中有一个经典示例根据 pin0 的读数切换显示表情docs/pin.rstfrom microbit import * while True: if pin0.read_digital(): display.show(Image.HAPPY) else: display.show(Image.SAD)上拉/下拉配置调用set_pull()可设置引脚的内部电阻pin8.set_pull(pin8.PULL_UP) # 上拉悬空时读 1 pin8.set_pull(pin8.PULL_DOWN) # 下拉 pin8.set_pull(pin8.NO_PULL) # 无⚠️ 注意read_digital()默认自动配置为下拉模式read_analog()为无拉触摸检测为自动上拉——大多数按钮/开关电路需要显式调用set_pull(pin.PULL_UP)。数字输出驱动 LED 与蜂鸣器write_digital(1)输出 3.3Vwrite_digital(0)输出 0V可直接驱动 LED、继电器等数字设备from microbit import * while True: pin16.write_digital(1) # 点亮 sleep(500) pin16.write_digital(0) # 熄灭 sleep(500)接上压电蜂鸣器后引脚输出同样能驱动发声模块下图为教程中常用的两脚压电蜂鸣器模拟输入read_analog 读取 0–1023 电压值read_analog()将引脚上的 0–3.3V 电压映射为0 到 1023 的整数10 位精度适合读取光敏电阻、电位器等模拟传感器light pin10.read_analog() print(light) # 0 ~ 1023 模拟输入引脚仅限pin3、pin4、pin10它们共用板载 ADC 通道。模拟输出write_analog 与 PWM 调光技巧引脚本身只能输出 0V/3.3V 两种电平但 MicroPython 通过**快速开关PWM 脉宽调制**模拟中间电压write_analog(511)等效 50% 占空比约 1.65Vwrite_analog(1023)为全亮。调光与调速实用代码from microbit import * import time # LED 呼吸灯效果 while True: for v in range(0, 1024, 64): pin4.write_analog(v) time.sleep(20) for v in range(1023, -1, -64): pin4.write_analog(v) time.sleep(20)还可以用set_analog_period(period_ms)最小 1ms或set_analog_period_microseconds()调整 PWM 周期。常见坑与故障排查清单引脚与点阵屏冲突pin3/4/6/7/9/10 默认服务于显示屏改作他用前需先display.off()可参考 tests/test_pins.py 中的完整切换测试pin5 / pin11 是按钮板上有外部 10kΩ 上拉电阻读取时即为按钮状态get_mode()查状态引脚会在unused、read_digital、write_digital、analog、display、button等模式间自动切换调试时打印它可快速定位冲突触摸引脚读数不稳定pin0–2 带外部 10MΩ 上拉用于触摸感应手指同时接触 GND 引脚可提升灵敏度延伸学习路径引脚完整 API 文档docs/pin.rst引脚实现源码source/microbit/microbitpin.cppPWM 底层库source/lib/pwm.c引脚行为回归测试tests/test_pins.py引脚实战示例LED 追逐游戏examples/led_hunt.py触摸与手势教程docs/tutorials/gestures.rst掌握数字/模拟 IO 之后你可以继续探索 SPIdocs/spi.rst、I2Cdocs/i2c.rst与 UARTdocs/uart.rst把 micro:bit 变成完整的传感器与执行器控制器。【免费下载链接】micropythonPort of MicroPython for the BBC micro:bit项目地址: https://gitcode.com/gh_mirrors/mic/micropython创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考