'''
深圳市普中科技有限公司(PRECHIN 普中)
技术支持:www.prechin.net
PRECHIN
普中
'''
'''
实验名称:按键控制实验
接线说明:按键模块-->ESP32 IO
(K1-K4)-->(14,27,26,25)
LED模块-->ESP32 IO
(D1-D4)-->(15,2,0,4)
实验现象:程序下载成功后,操作K1键控制D1指示灯亮灭;操作K2键控制D2指示灯亮灭;
操作K3键控制D3指示灯亮灭;操作K4键控制D4指示灯亮灭;
注意事项:
'''
#导入Pin模块
from machine import Pin
import time
#定义按键控制对象
key1=Pin(14,Pin.IN,Pin.PULL_UP)
key2=Pin(27,Pin.IN,Pin.PULL_UP)
key3=Pin(26,Pin.IN,Pin.PULL_UP)
key4=Pin(25,Pin.IN,Pin.PULL_UP)
key5=Pin(13,Pin.IN,Pin.PULL_UP)
key6=Pin(12,Pin.IN,Pin.PULL_UP)
key7=Pin(33,Pin.IN,Pin.PULL_UP)
key8=Pin(32,Pin.IN,Pin.PULL_UP)
#定义LED控制对象
led1=Pin(15,Pin.OUT)
led2=Pin(2,Pin.OUT)
led3=Pin(0,Pin.OUT)
led4=Pin(4,Pin.OUT)
led5=Pin(16,Pin.OUT)
led6=Pin(17,Pin.OUT)
led7=Pin(5,Pin.OUT)
led8=Pin(18,Pin.OUT)
led1_state,led2_state,led3_state,led4_state,led5_state,led6_state,led7_state,led8_state=1,1,1,1,1,1,1,1
def key1_irq(key1):
global led1_state
time.sleep_ms(10)
if key1.value()==0:
led1_state=not led1_state
led1.value(led1_state)
def key2_irq(key2):
global led2_state
time.sleep_ms(10)
if key2.value()==0:
led2_state=not led2_state
led2.value(led2_state)
def key3_irq(key3):
global led3_state
time.sleep_ms(10)
if key3.value()==0:
led3_state=not led3_state
led3.value(led3_state)
def key4_irq(key4):
global led4_state
time.sleep_ms(10)
if key4.value()==0:
led4_state=not led4_state
led4.value(led4_state)
def key5_irq(key5):
global led5_state
time.sleep_ms(10)
if key5.value()==0:
led5_state=not led5_state
led5.value(led5_state)
def key6_irq(key6):
global led6_state
time.sleep_ms(10)
if key6.value()==0:
led6_state=not led6_state
led6.value(led6_state)
def key7_irq(key7):
global led7_state
time.sleep_ms(10)
if key7.value()==0:
led7_state=not led7_state
led7.value(led7_state)
def key8_irq(key8):
global led8_state
time.sleep_ms(10)
if key8.value()==0:
led8_state=not led8_state
led8.value(led8_state)
if __name__=="__main__":
led1.value(led1_state)
led2.value(led2_state)
led3.value(led3_state)
led4.value(led4_state)
led5.value(led5_state)
led6.value(led6_state)
led7.value(led7_state)
led8.value(led8_state)
key1.irq(key1_irq,Pin.IRQ_FALLING)
key2.irq(key2_irq,Pin.IRQ_FALLING)
key3.irq(key3_irq,Pin.IRQ_FALLING)
key4.irq(key4_irq,Pin.IRQ_FALLING)
key5.irq(key5_irq,Pin.IRQ_FALLING)
key6.irq(key6_irq,Pin.IRQ_FALLING)
key7.irq(key7_irq,Pin.IRQ_FALLING)
key8.irq(key8_irq,Pin.IRQ_FALLING)
while True:
pass