实训2 Python点亮小灯

  1. 三步口诀:导模块→设引脚→给电平
    from machine import Pin
    led=Pin(2,Pin.OUT)
    led.value(1) # 高→亮
  2. 必记:GPIO号=板丝印数字,无需映射。

实训3 闪亮的小灯(延时)

  1. 延时唯二句:
    import time
    time.sleep(秒) # 浮点可0.1
  2. 轮流亮灭套路:亮→sleep→灭→sleep,for/while皆可。

实训4 一闪一闪(for循环)

  1. range三种
    单参:range(5) → 0 1 2 3 4
    双参:range(2,6) → 2 3 4 5
    三参:range(0,10,3) → 0 3 6 9
  2. 同时闪:多灯value写同一循环体;
    依次闪:循环内换灯号+sleep。

实训5 一直闪(while循环)

  1. 永久循环:
    while True:
     循环体
  2. 跳出手段:Ctrl+C(REPL)或条件break。

实训6 RGB灯带

  1. 固定引脚19,库neopixel
    from neopixel import NeoPixel
    np=NeoPixel(Pin(19),19) # 19颗
  2. 单灯语法:
    np[i]=(R,G,B) # 0-255
    np.write() # 必须刷新才生效
  3. 全灯同色:
    np.fill((0,0,255))
    np.write()

实训6-2 RGB流水灯(进阶)

  1. 流水=for序号+for颜色列表嵌套
    colors=[(255,0,0),(0,255,0),(0,0,255)]
    for c in colors:
    for i in range(8,19):
      np[i]=c; np.write(); time.sleep(0.2)

实训7 OLED显示字符

  1. 先刷ssd1306.py到板子!
  2. 固定I²C:SDA=21 SCL=22 addr=0x3c
    from machine import Pin,I2C
    from ssd1306 import SSD1306_I2C
    i2c=I2C(sda=Pin(21),scl=Pin(22))
    oled=SSD1306_I2C(128,64,i2c,addr=0x3c)
  3. 显示三句:
    oled.fill(0) # 清屏
    oled.text('str',x,y) # 左上角坐标
    oled.show() # 立即刷新
  4. 居中x算法:(128 - 8*len(str))//2 # 8×8点阵

实训8 OLED图形+中文

  1. 画线API:
    oled.pixel(x,y,1) # 单点
    oled.hline(x,y,w,1) # 横线
    oled.vline(x,y,h,1) # 竖线
  2. 中文显示步骤:
    ① PCtoLCD2002取模→32字节
    ② 建字典:fonts={'中':[...],'文':[...]}
    ③ 逐字节逐位画点→oled.pixel()
    ④ 居中同理,中文宽16高16。

实训9 电压测量

  1. ADC引脚34/35,量程0-3.3 V
  2. 衰减必须11 dB:
    adc=ADC(Pin(34))
    adc.atten(ADC.ATTN_11DB)
  3. 公式背:
    V=3.3*adc.read_u16()/65535-0.04 # 误差修正
  4. OLED同步显示:
    oled.text('{:.3f}V'.format(V),0,0)

实训10 温湿度传感器

(文档极简,仅留接口)

  1. 单总线→import dht
  2. 读取:
    d=dht.DHT11(Pin(XX))
    d.measure()
    t=d.temperature(); h=d.humidity()

实训11 电机

  1. 直流电机需驱动板;实验用开关+可调电源
  2. 开关接线:上拉输入
    sw=Pin(pin,Pin.IN,Pin.PULL_UP)
  3. 电压阈值判转停:
    if V>=3: motor.value(1) else: motor.value(0)

实训12 超声波测距

  1. 库:HCSR04.py 需提前刷入
    from hcsr04 import HCSR04
    sonar=HCSR04(trig=Pin(x),echo=Pin(y))
  2. 读距:
    d=sonar.distance() # cm,保留两位
  3. 联动电机:
    if d<10: motor.on() else: motor.off()

实训13 霍尔传感器

  1. 任意ADC引脚,衰减11 dB
  2. 磁场特性:
    正面靠近→电压↓;背面靠近→电压↑
  3. 实时显示:
    val=ADC(Pin(x)).read()
    oled.text('{}'.format(val),0,0)
  4. 综合案例:
    if val>3000: 流水红灯 else: 全灭