在这篇文章,介绍了ESP32搭建Python开发环境的基本流程。
myastrotong:玩转GPIO之ESP32搭建Python开发环境zhuanlan.zhihu.com搭建基本开发环境以后,就可以基于MicroPython进行硬件开发了。
学硬件的第一步,当然是点灯了。
本文分两部分,第一部分介绍基本的点灯和灭灯操作,第二部分介绍基于PWM点亮呼吸灯。
第一篇:基本的点灯和灭灯操作
定义文件TestLED.py
import time
from machine import Pin
led=Pin(2,Pin.OUT)
print("hello myLED")
while True:
led.value(1)
time.sleep(1)
led.value(0)
time.sleep(1)
首先定义GPIO口2为led(我选择的NodeMCU-32S,里面的ESP32的GPIO端口2自带了一盏蓝色LED灯)。
然后输出一句:hello myLED
最后在一个循环内部,定义GPIO2端口的值为1和0,表示开和关,蓝色灯随之亮和灭。
把文件拷贝到IDE左上角的device区域,然后右键点击文件,出现run或者default run。这里我选择了default run,文件名呈现红色。
运行效果如下图所示:
输出了一句:hello myLED
同时NodeMCU的蓝色LED灯循环亮灭。
视频效果如下:
第二部分:基于PWM点亮呼吸灯
定义breathLight.py文件
from machine import Pin,Timer,PWM
pwm = PWM(Pin(2),100) #创建PWM对象
polar = 0
duty = 0
def setLed(t): #led灯从明到暗再到明变化
global duty,polar
if(polar == 0):
duty+=16
if(duty >= 1008):
polar = 1
else:
duty -= 16
if(duty <= 0):
polar = 0
pwm.duty(duty) #设置2引脚输出的PWM的占空比(控制led灯的亮度)
tim = Timer(1) #创建Timer对象
tim.init(period=10,mode=Timer.PERIODIC, callback=setLed) #不断实现呼吸灯功能,持续10毫秒
#捕获异常
try:
while True:
pass
except: #关闭Timer和PWM
tim.deinit()
pwm.deinit()
基于NodeMCU的GPIO2口的自带LED灯。
直接定义GPIO2为PWM。在setLed函数中设置GPIO2口的占空比循环增加和减少,使得蓝色LED灯呈现呼吸的效果。
效果视频如下:
本文介绍了用Python点灯的基本方法。基于Python几句话就实现了灯的各种效果,非常方便。