代码下载:https://download.csdn.net/download/sea1216/13685645
4路循迹如下图:
按着它的说明接线就好了,并选定好单片机引脚。我用STM32CUBEMX接着上一篇文章添加4个引脚,最后生成的程序如下(main.h):
#define BZ1_Pin GPIO_PIN_4
#define BZ1_GPIO_Port GPIOA
#define BZ2_Pin GPIO_PIN_5
#define BZ2_GPIO_Port GPIOA
#define BZ3_Pin GPIO_PIN_6
#define BZ3_GPIO_Port GPIOA
#define BZ4_Pin GPIO_PIN_7
#define BZ4_GPIO_Port GPIOA
其中说明如:
//定义红外避障引脚及功能
//最左边红外头BZ4_Pin
//左边红外头BZ3_Pin
//最右边红外头BZ1_Pin
//右边红外头BZ2_Pin
在main.h中添加如下:
//定义读取端口高低电平
#define BZ1_IN HAL_GPIO_ReadPin(BZ1_GPIO_Port,BZ1_Pin)//读取最右边红外头数据,如果为1则表示靠近黑线
#define BZ2_IN HAL_GPIO_ReadPin(BZ2_GPIO_Port,BZ2_Pin)
#define BZ3_IN HAL_GPIO_ReadPin(BZ3_GPIO_Port,BZ3_Pin)
#define BZ4_IN HAL_GPIO_ReadPin(BZ4_GPIO_Port,BZ4_Pin)
在main.c中添加如下程序:
//红外循迹避障测试
//黑色无反射,输出1,灯亮
while(1)
{
if(BZ1_IN&&BZ2_IN&&BZ3_IN&&BZ4_IN)//如果同时检测到信号,则停车,灯闪烁
{
CAR_STOP;
LED_on;
HAL_Delay(300);
LED_off;
HAL_Delay(300);
}
else if(BZ1_IN||BZ2_IN)//如果左边两个红外避障有信号则右移
{
LED_on;
CAR_RIGHT;
}
else if(BZ3_IN||BZ4_IN)//如果右边两个红外避障有信号则左移
{
LED_on;
CAR_LEFT;
}
else
{
LED_off;
CAR_UP;
}
}
代码下载:https://download.csdn.net/download/sea1216/13685645
4路循迹如下图:
按着它的说明接线就好了,并选定好单片机引脚。我用STM32CUBEMX接着上一篇文章添加4个引脚,最后生成的程序如下(main.h):
#define BZ1_Pin GPIO_PIN_4
#define BZ1_GPIO_Port GPIOA
#define BZ2_Pin GPIO_PIN_5
#define BZ2_GPIO_Port GPIOA
#define BZ3_Pin GPIO_PIN_6
#define BZ3_GPIO_Port GPIOA
#define BZ4_Pin GPIO_PIN_7
#define BZ4_GPIO_Port GPIOA
其中说明如:
//定义红外避障引脚及功能
//最左边红外头BZ4_Pin
//左边红外头BZ3_Pin
//最右边红外头BZ1_Pin
//右边红外头BZ2_Pin
在main.h中添加如下:
//定义读取端口高低电平
#define BZ1_IN HAL_GPIO_ReadPin(BZ1_GPIO_Port,BZ1_Pin)//读取最右边红外头数据,如果为1则表示靠近黑线
#define BZ2_IN HAL_GPIO_ReadPin(BZ2_GPIO_Port,BZ2_Pin)
#define BZ3_IN HAL_GPIO_ReadPin(BZ3_GPIO_Port,BZ3_Pin)
#define BZ4_IN HAL_GPIO_ReadPin(BZ4_GPIO_Port,BZ4_Pin)
在main.c中添加如下程序:
//红外循迹避障测试
//黑色无反射,输出1,灯亮
while(1)
{
if(BZ1_IN&&BZ2_IN&&BZ3_IN&&BZ4_IN)//如果同时检测到信号,则停车,灯闪烁
{
CAR_STOP;
LED_on;
HAL_Delay(300);
LED_off;
HAL_Delay(300);
}
else if(BZ1_IN||BZ2_IN)//如果左边两个红外避障有信号则右移
{
LED_on;
CAR_RIGHT;
}
else if(BZ3_IN||BZ4_IN)//如果右边两个红外避障有信号则左移
{
LED_on;
CAR_LEFT;
}
else
{
LED_off;
CAR_UP;
}
}
举报