|
主要代码如下
#include <hcsr04.h>
#include <motor.h>
#include <delay.h>
#include <stm32f10x.h>
#include <usart.h>
#include <key.h>
#include <lcd.h>
void Car_Turn(float length1,float length2);
int main()
{
delay_init();//延时初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
MotorDriver_Init();//电机初始化
uart_init(9600);
KEY_Init();
LCD_Init();
HC_SR04_1_Init();
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(10,70,200,16,16,"Please press wake_up to");
LCD_ShowString(10,90,200,16,16,"start the little car");
while(KEY_Scan(0) != WKUP_PRES);
LCD_Clear(WHITE);
LCD_ShowString(60,70,200,16,16,"IS WORKING...");
//TIM3_Int_Init(1999,7199);
while(1)
{
float length1 = Senor_Using_1();//超声波模块测的距离
float length2 = Senor_Using_2();
Car_Turn(length1,length2);
//printf("\n\t%f\t\n",length1);
//printf("\n\t%f\t\n",length2);
//LCD_ShowString(60,70,200,16,16,"distance: cm");
//LCD_ShowNum(80,70,length1,16,16);
if(KEY_Scan(0) == KEY0_PRES)
{
MotorDriver_L_Turn_Stop();
MotorDriver_R_Turn_Stop();
break;
}
delay_ms(50);
}
}
void Car_Turn(float length1,float length2)
{
if(length1 > 30&&length2 > 30)//前进
{
MotorDriver_L_Turn_Forward();
MotorDriver_R_Turn_Forward();
}else if(length1 <= 30&&length2 > 30)//右转
{
MotorDriver_L_Turn_Forward();
MotorDriver_R_Turn_Reverse();
}
else if(length1 > 30&&length2 <= 30)//左转
{
MotorDriver_R_Turn_Forward();
MotorDriver_L_Turn_Reverse();
}
else if(length1 <= 30&&length2 <= 30)//后退+左转
{
MotorDriver_R_Turn_Reverse();
MotorDriver_L_Turn_Reverse();
delay_ms(150);
MotorDriver_R_Turn_Forward();
MotorDriver_L_Turn_Reverse();
delay_ms(150);
}
}
|
-
-
避障小车.7z
229。61 KB, 下载次数: 0, 下载积分: 黑币 -5
|