炽幻恶魔 2022-01-14 16:01 采纳率: 100%
浏览 131
已结题

请教一下esp32的引脚电平输入输出不正常是为什么?

代码如下:

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号针脚的继电器都没有反应,这又是为什么?求指导。

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-01-14 16:23
    关注

    你 13行和16行代码一样,都是 33输出 0 ,所以 33 继电器没反应。
    34 脚悬空,状态不稳定,手持金属物体触碰该脚,人体静电几周围220 50Hz交流电场会干扰进来,使 34 脚电平状态不定引起的一系列反应。可以将该脚初始化成上拉或下拉,也可以外接上拉或下拉电阻

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月22日
  • 已采纳回答 1月22日
  • 创建了问题 1月14日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置