如何编程断开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; }
电路图

内容的提问来源于stack exchange,提问作者Rattus
相关产品推荐
相关产品推荐

