# 简介: # 根据电位器读数设置LED灯泡状态 # 加入记录LED状态的变量以防止重复发出指令 # 在micro:bit显示屏上增加对电位器示数的显示 import poten, led # 导入模块控制库 from microbit import sleep, display is_on = False # 记录LED当前状态,防止重复操作 led.off() # 确保初始LED为关闭状态 # 循环进行 while True: # 读取电位器位置(0-4095) pv = poten.value() # 根据读数设置LED灯状态 if pv < 2048: if is_on: led.off() is_on = False elif not is_on: is_on = True led.on() # 计算并设置点亮像素位置 pos = int(pv * 25 / 4100) display.clear() display.set_pixel(pos % 5, pos // 5, 9)
# 简介: # 根据电位器读数设置LED灯泡状态 # 加入记录LED状态的变量以防止重复发出指令 # 使用函数列表方式简化语句 # 在micro:bit显示屏上增加对电位器示数的显示 # 绘制显示像素点移动的尾迹 import poten, led # 导入模块控制库 from microbit import sleep, display is_on = False # 记录LED当前状态,防止重复操作 led.off() # 确保初始LED为关闭状态 function_map = [led.off, led.on] # 包含对LED灯操作的列表 pos_old = int(poten.value() * 25 / 4100) # 用于记录上一帧像素点位置 # 循环进行 while True: # 读取电位器位置(0-4095) pv = poten.value() # 根据读数设置LED灯状态 new_stat = (pv >= 2048) if new_stat != is_on: is_on = new_stat function_map[is_on]() # 渐隐效果 for i in range(5): for j in range(5):
display.set_pixel(i % 4, i // 4, 9 * bool(chn & ptr)) ptr *= 2 oled.clear() temp, humi = temp_humi.temp_humi() oled.show(0, 0, b'\xce\xc2\xb6\xc8\xa3\xba%s\xa1\xe6' % temp) oled.show(2, 0, b'\xca\xaa\xb6\xc8\xa3\xba%s%%' % humi) temp, humi = temp_humi.temp(), temp_humi.humi() oled.show(4, 0, b'\xce\xc2\xb6\xc8\xa3\xba%s\xa1\xe6' % temp) oled.show(6, 0, b'\xca\xaa\xb6\xc8\xa3\xba%s%%' % humi) sleep(500) break elif ta == 3 and tb == 4: # 测试LED、电位器 display.show(Image.HAPPY) import led, poten led.off() flag, counter = 0, 0 while not (button_a.get_presses() + button_b.get_presses()): counter += poten.value() if counter >= 4096: counter -= 4096 if flag: led.off() flag = 0 else: led.on() flag = 1 break else: sleep(10) display.clear()
# 硬件模块: # micro:bit×1;主板×1 # 模块×2:电位器、LED灯泡 from microbit import * import music import poten, led # 模块控制库 # 初始化记录变量 t, led_on = 0, 0 led.off() while True: # 向计时变量增加部分读数 t += poten.value() or 1 if t > 5000: t -= 5000 # 蜂鸣 music.pitch(1000, 50, wait=0) # 切换LED灯状态 if led_on: led_on = 0 led.off() else: led_on = 1 led.on() # 延迟50ms后继续读数