我正在尝试将以下内容从 Javascript 转换为 micro:bit 的 MicroPython。这是发明者工具包中的代码示例 3,从块转换为 Javascript。
let light_state = 0
# how do you do this bit?
input.onPinPressed(TouchPin.P0, () => {
if (light_state == 0) {
light_state = 1
} else {
light_state = 0
}
})
basic.forever(() => {
if (light_state == 1) {
pins.analogWritePin(AnalogPin.P2, pins.analogReadPin(AnalogPin.P1))
} else {
pins.digitalWritePin(DigitalPin.P2, 0)
}
})
我不知道如何将input.onPinPressed作为回调事件甚至是 lambda。我能想出的最好办法是反复轮询 pin0。
from microbit import *
light_on = False
while True:
if pin0.is_touched():
light_on = not light_on
if light_on:
aval = pin1.read_analog()
pin2.write_analog(aval)
else:
pin2.write_digital(0)
我在 MicroPython 文档中看到了关于开关的回调,但我没有遇到任何 micro:bit 引脚的事件回调。即使没有记录,是否有此功能的示例代码?
编辑:我对代码进行了更正——之前的 MicroPython 翻译导致 LED 持续闪烁。