stm32f4红外传感器模块 和人体感应模块HCSR501

也同时买了个红外传感器模块

在这里插入图片描述
还买了一个长这样的
在这里插入图片描述

这个好容易随便写写了

初始化一下gpioB引脚

	__HAL_RCC_GPIOB_CLK_ENABLE(); 
	
	GPIO_Initure.Pin=GPIO_PIN_2;            //PB2
    GPIO_Initure.Mode=GPIO_MODE_INPUT;      //输入
    GPIO_Initure.Pull=GPIO_PULLUP;        //下拉
    GPIO_Initure.Speed=GPIO_SPEED_HIGH;     //高速
    HAL_GPIO_Init(GPIOB,&GPIO_Initure);

对他进行读值

int main(void)
{
   
    uint8_t val;                                 //初始化HAL库   
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
    delay_init(180);                //初始化延时函数
	uart_init(115200);
    LED_Init();                     //初始化LED 
    KEY_Init();                     //初始化按键
	delay_ms(100);			//延时100ms再初始化看门狗,LED0的变化"可见"
	IWDG_Init(4,500);
	//IWDG_Init(IWDG_PRESCALER_64,500);  	//分频数为64,重载值为500,溢出时间为1s	
	val =  HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);
	printf("DHT11 start is %d\r\n",val);
	LED0=0;
	val = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2);
	printf("DHT11 start is %d\r\n",val);

}

好开心,写的最随意的一篇博客,哈哈哈哈,有人想去爬山吗,我带相机

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
HCSR501 红外传感器是一种常用的人体红外感应模块,可以检测人体的热辐射,通常用于安防监控、自动化控制等领域。下面是基于 STM32HCSR501 红外传感器的工作原理和代码实现。 1. 工作原理 HCSR501 红外传感器的工作原理是通过检测人体的热辐射来实现人体感应。当人体进入传感器的检测范围时,会产生热辐射,传感器感应到热辐射的变化,从而输出高电平信号。反之,当没有人体进入传感器的检测范围时,传感器不会感应到热辐射的变化,从而输出低电平信号。 2. 代码实现 下面是基于 STM32HCSR501 红外传感器的代码实现: ```c #include "main.h" #include "stdio.h" #include "stdbool.h" #define HCSR501_PIN GPIO_PIN_0 #define HCSR501_PORT GPIOA bool HCSR501_Detect(void); int main(void) { // 初始化 GPIO GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = HCSR501_PIN; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(HCSR501_PORT, &GPIO_InitStruct); while (1) { if (HCSR501_Detect()) { printf("Human detected!\n"); } else { printf("No human detected!\n"); } HAL_Delay(1000); } } bool HCSR501_Detect(void) { if (HAL_GPIO_ReadPin(HCSR501_PORT, HCSR501_PIN) == GPIO_PIN_SET) { return true; } else { return false; } } ``` 在上述代码中,我们使用了 STM32 的 GPIO 库来初始化 HCSR501 红外传感器的引脚,并通过 HCSR501_Detect() 函数来检测人体的存在。当检测到人体时,函数返回 true,否则返回 false。在主函数中,我们不断地调用 HCSR501_Detect() 函数来检测人体的存在,并通过 printf() 函数来输出检测结果。 需要注意的是,HCSR501 红外传感器的输出信号是高电平信号,因此我们在函数中判断 GPIO 引脚是否为高电平来确定是否检测到人体
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值