代码如下:
void setup()
{
pinMode(2,OUTPUT);/*将2号针脚设为输出模式*/
pinMode(34,INPUT);/*将34号针脚设置为输入模式*/
pinMode(33,OUTPUT);/*将33号针脚设为输出模式*/
}
void loop()/*无限循环*/
{
if(digitalRead(34))/*如果34号针脚是高电平则执行内含代码*/
{
delay(1000);/*延时1000ms*/
digitalWrite(2,1);/*2号针脚拉高电平,点亮led灯*/
digitalWrite(33,0);/*拉高33号引脚电平以导通继电器电路*/
while(digitalRead(34));/*34号针脚高电平则无限循环*/
digitalWrite(2,0);/*2号针脚拉低电平,关闭led灯*/
digitalWrite(33,0);/*拉低33号引脚电平以断开继电器电路*/
}
}
原本是想把esp32的34号针脚接电话线,33号针脚接继电器,门铃按响后电话线通电拉高34号引脚电平,延时一秒,2号针脚的led亮,同时继电器导通开门,门铃断电后led熄灭,同时继电器恢复断开状态,可是代码写入后,34号针脚插了个杜邦线,什么都没接,led灯就开始一秒闪一下,哪怕什么都不插,用手指按上去,它也会一秒闪一下,但凡金属物品接触到34号引脚,它都会一秒闪一下,有时候还不定时闪一下,这是为什么?另外33号针脚应该和2号针脚的led灯同步高低电平变化,但是实际上不管led亮不亮、34号针脚有没有输入高电平,33号针脚的继电器都没有反应,这又是为什么?求指导。