STM32智能小车红外避障+光电传感器基于库函数程序电机配置c++
时间: 2023-08-16 16:08:02 浏览: 51
以下是一个基于库函数的STM32智能小车红外避障+光电传感器程序电机配置的示例代码,使用C++语言编写:
```c++
#include "stm32f10x.h"
#include "delay.h"
#include "usart.h"
#include "motor.h"
#include "IRsensor.h"
#include "photosensor.h"
int main(void)
{
/* 初始化 */
Motor_Init(); // 电机初始化
IRsensor_Init(); // 红外传感器初始化
Photosensor_Init(); // 光电传感器初始化
/* 主循环 */
while (1)
{
/* 红外避障 */
if (IRsensor_Status() == 0x01) // 左侧检测到障碍物
{
Motor_Left(); // 左转
delay_ms(500); // 延时
}
else if (IRsensor_Status() == 0x02) // 右侧检测到障碍物
{
Motor_Right(); // 右转
delay_ms(500); // 延时
}
else if (IRsensor_Status() == 0x03) // 左右均检测到障碍物
{
Motor_Back(); // 后退
delay_ms(500); // 延时
}
else // 没有检测到障碍物
{
/* 光电跟随 */
if (Photosensor_Status() == 0x01) // 左侧检测到黑线
{
Motor_Left(); // 左转
}
else if (Photosensor_Status() == 0x02) // 右侧检测到黑线
{
Motor_Right(); // 右转
}
else // 没有检测到黑线
{
Motor_Forward(); // 前进
}
}
}
}
```
该程序中使用了Motor库函数控制电机,IRsensor库函数控制红外传感器,Photosensor库函数控制光电传感器。在主循环中,先判断红外传感器检测到的障碍物情况,然后再根据光电传感器检测到的黑线情况来控制电机转向。这样可以实现智能小车的红外避障和光电跟随功能。