第四讲:LED灯实验
MicroPython函数使用
本来需要加入machine.的,但是我引入了form machine import Pin就可以直接省略了
machine是一个模块,Pin是machine中的一个功能
Micropython官网学习
点击DOCS文档
选择相应的芯片
查看对应的模块
machine是一个模块,Pin是模块的另外一个模块
重点:不会就查官网信息
LED灯硬件设计
LED灯引脚为GPIO15
软件设计
点亮一个LED灯代码
对于端口的上下拉的功能可以选择性配置
LED灯闪烁实验
我们之前学51单片机时,LED灯闪烁的话,是需要延时函数的,而延时函数是我们自己写的,而在这里,我们可以直接引入写好的函数--导入模块即可
官网上也有所讲解该模块功能
程序重点--time模块导入以及死循环建立(while语句使用)
LED灯流水灯实验
想想51单片机的学习,直接使用for循环对管脚进行赋值即可,或者使用库函数左移和右移函数进行LED灯的流水灯实验,同样ESP32的Mircopython也有库函数给你直接使用
此代码稍微有点复杂,因为涉及到了Python的列表使用(相当于数组)
实验名称:LED流水灯实验
接线说明:LED模块-->ESP32 IO
(D1-D8)-->(15,2,0,4,16,17,5,18)
实验现象:程序下载成功后,LED模块D1-D8指示灯依次点亮后依次熄灭
注意事项:
'''
#导入Pin模块
from machine import Pin
import time
led_pin=[15,2,0,4,16,17,5,18] #定义LED控制引脚
leds=[] #定义leds列表,保存LED管脚配置对象
for i in range(8): #循环8次,0-7
leds.append(Pin(led_pin[i],Pin.OUT)) #给leds列表添加对象
# leds=[Pin(led_pin[i],Pin.OUT) for i in range(0,8)]
#程序入口
if __name__=="__main__":
#LED全熄灭
for n in range(8):
leds[n].value(0)
while True:
#LED逐个点亮
for n in range(8):
leds[n].value(1)
time.sleep(0.05)
#LED逐个熄灭
for n in range(8):
leds[n].value(0)
time.sleep(0.05)