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

请教一下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日

悬赏问题

  • ¥50 gki vendor hook
  • ¥15 centos7中sudo命令无法使用
  • ¥15 灰狼算法和蚁群算法如何结合
  • ¥15 这是一个利用ESP32自带按键和LED控制的录像代码,编译过程出现问题,请解决并且指出错误,指导如何处理 ,协助完成代码并上传代码
  • ¥20 stm32f103,hal库 hal_usart_receive函数接收不到数据。
  • ¥20 求结果和代码,sas利用OPTEX程序和D-efficiency生成正交集
  • ¥50 adb连接不到手机是怎么回事?
  • ¥20 抓取数据时发生错误: get_mooncake_data() missing 1 required positional argument: 'driver'的问题,怎么改出正确的爬虫代码?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联