You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编程断开microbit的Pin1引脚,实现电容放电电压采集实验?

问题:Microbit实现电容电压降测量实验的引脚控制问题

我正在为学生搭建一个实验,通过microbit测量电容器的电压降来研究电容特性。电路连接为microbit接面包板,电容器与LED/电阻并联。实验思路是切断为电路供电的引脚电源,让学生观察LED逐渐变暗,同时microbit每半秒记录一次电容器电压。但我无法通过编程断开microbit的Pin1引脚:使用digital_write_pin设为0会立即耗尽电容电量,使用setPull则LED不会变暗,电源也未切断。我已在Arduino上完成相同实验并成功,但无法将代码转译为microbit适配的Python代码。

我的Microbit Python代码

time = 0
# pins.set_pull(DigitalPin.P1, PinPullMode.PULL_DOWN)
pins.digital_write_pin(DigitalPin.P1, 0)
pause(2000)
# pins.set_pull(DigitalPin.P1, PinPullMode.PULL_UP)
pins.digital_write_pin(DigitalPin.P1, 1)
pause(2000)

def on_forever():
    global time
    pins.set_pull(AnalogPin.P1, PinPullMode.PULL_NONE)
    # pins.digitalWritePin(DigitalPin.P1, 0)
    time = 0
    for index in range(15):
        serial.write_number(6)
        basic.show_number(pins.analog_read_pin(AnalogPin.P0))        
        datalogger.log(datalogger.create_cv("A", time))
        datalogger.log(datalogger.create_cv("B", pins.analog_read_pin(AnalogPin.P0)))
        time += 500
        pause(500)
basic.forever(on_forever)

成功实现功能的Arduino代码

void setup() {
  Serial.begin(9600);
  pinMode(8, OUTPUT);
  pinMode(A1, INPUT);
  digitalWrite(8, HIGH);
  delay(2000);
}
bool first = true;
void loop() {
  int data[20]  = {0};
  pinMode(8, INPUT);
  if (first)
    for (int i = 0; i < 15; i++) {
      data[i] = analogRead(A1);
      Serial.print(data[i]/1023. * 5.);
      Serial.print(",");
      delay(500);
    }
  first = false;
}

电路图

Circuit Layout

内容的提问来源于stack exchange,提问作者Rattus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:30:07