ESP32 Micropython编程(Thonny)GPIO输入输出
GPIO输入输出
一、输入输出GPIO口定义及使用
硬件
输入:按键
输出:led
2.软件即程序
①输入输出定义import machine
led = machine.Pin(2,machine.Pin.OUT) #定义led为输出
sw = machine.Pin(0,machine.Pin.IN) #定义sw为输入
或者
import machine
from machine import Pin #导入GPIO模块
#创建GPIO对象
led = Pin(2)
#led = Pin(2, Pin.OUT)
#led = Pin(2, Pin.OUT, value(1)) #可以在初始化时后就输出指定电平
sw = Pin(0,Pin.IN)
②输出led使用
led.on()
led.off()
led.value(1)
led.value(0)
led.value(True)
led.value(False)
③输入sw使用
if(sw.value() == 0): #按键按下
led.on()
else: #按键松开
led.off()
二、LED闪烁程序
import machine
import time
led = machine.Pin(2,machine.Pin.OUT)
while True:
led.on()
time.sleep(0.5)
led.off()
time.sleep(0.5)
三、LED闪烁函数定义
import machine
import time #导入延时模块
led = machine.Pin(2,machine.Pin.OUT)
#参数1 num 闪烁次数
#参数2,3 t_on/t_off led亮灭时间
#参数4 msg 上报字符信息
def blink_led (num, t_on, t_off, msg):
counter = 0
while (counter < num):
led.on()
time.sleep(t_on) #延时 t_on s
#time.sleep_ms(t_on) #延时 t_on ms
#time.sleep_us(t_on) #延时 t_on us
led.off()
time.sleep(t_off)
counter += 1
print(msg)
然后可以在shell终端 输入blink_led (10, 0.2, 0.8, "Blinking Done") 观看结果
或者 可以在主编辑器里输入 while True: 之类的
四、按键控制led亮灭
import machine
led = machine.Pin(2,machine.Pin.OUT) #定义led为输出
sw = machine.Pin(0,machine.Pin.IN) #定义sw为输入
while True:
if(sw.value() == 0): #按键按下
led.on()
else: #按键松开
led.off()
此处声明 GPIO0 引脚为BOOT引脚
boot: 下载程序时候使用
下载和启动时需要为低电平(按键按下)
(下载程序时候需要和en/rst引脚配合使用,程序正常运行过程中 可以当 作按键输入使用)
正常工作时候为高电平(按键松开)
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询