ESP32 Micropython编程(Thonny)GPIO输入输出

180it 2022-05-31 AM 1072℃ 0条

ESP32 Micropython编程(Thonny)GPIO输入输出

GPIO输入输出

一、输入输出GPIO口定义及使用

  1. 硬件
    输入:按键
    输出: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引脚配合使用,程序正常运行过程中 可以当 作按键输入使用)
正常工作时候为高电平(按键松开)

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

ESP32 Micropython编程(Thonny)GPIO输入输出