学习笔记14-红外避障模块

一、相关介绍

该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3V-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。
在这里插入图片描述

接线

VCC----3.3V
GND----GND
OUT----IO口(检测输出电平用)

电路图

在这里插入图片描述

测试

  • 测试探头
    移开探头前面所有物体,且探头不要指向有阳光的地方(光线对探头有较大干扰),将探头板接上电源后用万用表测量 OUT 和 GND之间的电压,正常范围应该在 0.6v-2.5v 之间,用白纸挡在探头前,用万用表测量 OUT 和 GND之间的电压,正常范围应该接近0V.简单的说,就是用白纸挡住探头后,OUT 和GND 之间的电压会有一个明显的降低,这样就算正常。
  • 联机测试
    按照要求将探头与中控板连接好,移开探头前面所有物体,且探头不要指向有阳光的地方(光线对探头有较大干扰),调节每一路的电位器,直到灯刚灭掉,然后用白纸遮挡探头,会发现led 会点亮,这样就算测试成功了,然后我们就可以将中控板的输出信号传入单片机进行高低电平检测了。

二、代码段

关于避障模块被障碍物遮挡时led灯点亮的小实验

tracking.c

#include "tracking.h"

void tracking_GPIO_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(tracking_GPIO_CLK,ENABLE);
	
	GPIO_InitStructure.GPIO_Pin=tracking_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; 	
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(tracking_GPIO_PORT, &GPIO_InitStructure);
}

uint8_t tracking_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
{
	if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==tracking_Low)
		return tracking_Low;
	else
		return tracking_High;
}

tracking.h

#ifndef __TRAKING_H
#define __TRAKING_H

#include "stm32f10x.h"

#define tracking_GPIO_CLK	   		RCC_APB2Periph_GPIOC
#define tracking_GPIO_PIN				GPIO_Pin_6
#define tracking_GPIO_PORT			GPIOC

#define tracking_High			1
#define tracking_Low			0

void tracking_GPIO_Config(void);
uint8_t tracking_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin);

#endif /* __TRAKING_H */

main.c

#define	digitalHi(p,i)		 {p->BSRR=i;}	 //输出高电平
#define digitalLo(p,i)		 {p->BRR=i;}	 //输出低电平

#define LED1_OFF		   digitalHi(LED1_GPIO_PORT,LED1_GPIO_PIN)
#define LED1_ON			   digitalLo(LED1_GPIO_PORT,LED1_GPIO_PIN)

#define SOFT_DELAY Delay(0x0FFFF);

void Delay(__IO uint32_t nCount)	 
{
	for(; nCount != 0; nCount--);
}

int main(void)
{	
	LED_GPIO_Config();	 
	tracking_GPIO_Config();
	while (1)
	{
		if(tracking_Scan(tracking_GPIO_PORT,tracking_GPIO_PIN) == tracking_Low)
		{
			LED1_ON;
			SOFT_DELAY;
			LED1_OFF;
		} 
	}
}

多路代码参考:红外循迹模块


  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChristianLuu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值