我买了一个HC-SR501,写了一个简单的C程序,但LED不能正确显示,一会亮一会灭

2025-04-03 03:33:58
推荐回答(3个)
回答1:

是用的51单片机吧,hcsr501=1就是定义该端口为输入模式,因为51单片机输出高电平时是弱上拉。另外LED2一会亮一会灭应该是模块本身在检测到有人时,其输出高电平(或者低电平)之后会有延时。建议用万用表测量模块输出引脚的输出电平是否正确,再检查程序

回答2:

有可能是你的HCSR501模块没在工作电压范围4.5V-20V,参考解决办法

网页链接

回答3:

#include
sbit Beep = P2^1 ;
sbit jc =P1^7 ;
sbit K1=P1^4;
void Delay(unsigned int i) ;
void main()
{
unsigned int c;
jc=1;
while(1)
{
if(jc==0)
{
P2=0xAA;
Delay(10);
c=100;
while(c>1)
{
c--;
Beep=~Beep;
Delay(10);
}
c=100;
while(c>1)
{
c--;
Beep=~Beep;
Delay(20);
}
c=100;
while(c>1)
{
c--;
Beep=~Beep;
Delay(40);
}
while(c>1)
{
c--;
Beep=~Beep;
Delay(80);
}
}
if (jc==1)
{
P2=0xf0;
}
}
}
/*******************************************************************************
* 函数名 : Delay()
* 函数功能 : 延时函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void Delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}
以上是程序,,,
输出要用三级管电路,转换到 单片机的低电触发,因为3.3 驱动不了单片机的5V