Day3_LED流水灯

基础

限流电阻阻值计算

限流电阻 = (电源电压-LED正向稳压电压) / 你要求的工作电流
55 = (3.3-2.2)/0.02A
0.02A = 20mA

方法

Pin引脚类

1
2
3
4
5
6
7
8
9
10
from machine import Pin

pin12 = Pin(12, # 指定引脚
mode=Pin.OUT, # 指定引脚模式Pin.IN/Pin.OUT
pull=None, # None(没有上下拉电阻) Pin.PULL_UP(上拉电阻) Pin.PULL_DOWN(下拉电阻)
value=0) # 0是低电平 1高电平
# pin12.value(0)


pin12.value(1) # 0是低电平 1高电平

time

1
2
3
4
5
import time

time.sleep(0.5) # 延时0.5秒
time.sleep_ms(100) # 延时100毫秒
time.sleep_us(100) # 延时100微秒

实验

一个闪烁的LED

  1. 接线
    image
  2. 代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from machine import Pin
    import time

    pin12 = Pin(12, # 指定引脚
    mode=Pin.OUT, # 指定引脚模式Pin.IN/Pin.OUT
    pull=None, # None(没有上下拉电阻) Pin.PULL_UP(上拉电阻) Pin.PULL_DOWN(下拉电阻)
    value=0) # 0是低电平 1高电平

    while True:
    pin12.value(not pin12.value())
    time.sleep(1)

流水灯

  1. 接线
    image

  2. 程序
    流水灯

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    from machine import Pin
    import time

    pin_index = [13,12,14,26,27] # 引脚下表列表
    pin_list = []

    for i in pin_index:
    pin_list.append(Pin(i,Pin.OUT))

    print(pin_list)

    for led_pin in pin_list:
    led_pin.off()


    while True:
    # 逐个熄灭
    for led_pin in pin_list:
    led_pin.value(1)
    time.sleep(0.05)
    for led_pin in pin_list:
    led_pin.value(0)
    time.sleep(0.05)
  3. pin的顺序会影响灯的亮灭?
    为什么我 pin_index = [13,12,14,27,26] 时27引脚接的LED死活不亮,单独让27号亮它又能亮。用[13,12,14,26,27]就都能亮了。。。。奇怪.
    用万用表测了一下,破案了,管脚输出的是3.3V。我用的限流电阻是1K,测到的LED输入电压是1.8V 红绿LED的工作输入电压是2.0-2.2v(貌似颜色不一样的LED要求的输入电压也不一样)
    所以原因就是LED输入电压不够,限流电阻用错了。没有万用表确实不方便,没想到一个小小的LED都这么多坑。