单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3|回复: 1
收起左侧

基于stm32的超声波避障小车

[复制链接]
墨染宸星 发表于 2019-11-26 10:35 | 显示全部楼层 |阅读模式
主要代码如下
#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

admin 发表于 2019-11-26 14:24 | 显示全部楼层
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表