标题:
STM32小车盲走程序(无探索区域四路直流电机调速 正反转等)
[打印本页]
作者:
寒羽
时间:
2017-5-23 22:56
标题:
STM32小车盲走程序(无探索区域四路直流电机调速 正反转等)
四路直流电机正反转,调速程序实现STM32小车盲走,无探索区域
可适用于L298N驱动电路和H桥模块
0.png
(72.37 KB, 下载次数: 89)
下载附件
2017-5-24 00:12 上传
stm32单片机源程序如下:
#include "stm32f10x.h"
#include "bsp_breathing.h"
#include "delay.h"
#include "bsp_usart1.h"
/**
* @brief 主函数
* @param 无
* @retval 无
*/
int main(void)
{
DelayInit();
USART1_Config();
TIM2_PWM_Init();
TIM4_PWM_Init();
while(1)
{
/*取元件1*/
MORTOR_Straight(); //电机直走
DelayS(8); //延时15s电机直走,到第一个拐弯处
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(4500); //走8s到第二个拐弯处
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1 (转???时间,然后再直走)
DelayMs(600); //转1/4圈
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayS(2); //走4s到第三个拐弯处
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(750);
MORTOR_Stop(); //电机停止
printf("#1GC1\r\n");
DelayS(10);
/*返回物架1*/
MORTOR_Back();
DelayMs(750);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayS(2);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(4500); //走8s到第二个拐弯处
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(1500);
MORTOR_Stop(); //电机停止
printf("#2GC1\r\n");
DelayS(10);
/*取元件2*/
MORTOR_Back();
DelayS(1);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(750);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(1500);
MORTOR_Stop(); //电机停止
printf("#3GC1\r\n");
DelayS(10);
/*返回物架2*/
MORTOR_Back();
DelayMs(1500);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(750);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayS(1);
MORTOR_Stop(); //电机停止
printf("#4GC1\r\n");
DelayS(10);
/*取元件3*/
MORTOR_Back();
DelayS(1);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(750);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayS(2);
MORTOR_Stop(); //电机停止
printf("#3GC1\r\n");
DelayS(10);
/*返回物架3*/
MORTOR_Back();
DelayS(2);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(750);
MORTOR_Left(); //电机停止
MORTOR_Right(); //电机左转
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayS(4);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(1750);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500);
MORTOR_Stop(); //电机停止
printf("#5GC1\r\n");
DelayS(10);
/*取元件4*/
MORTOR_Back();
DelayS(2);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayS(4);
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(4500); //走8s到第二个拐弯处
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500); //走8s到第二个拐弯处
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转 (转一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayS(1);
MORTOR_Stop(); //电机停止
printf("#6GC1\r\n");
DelayS(10);
/*返回物架4*/
MORTOR_Back();
DelayS(1);
MORTOR_Stop(); //电机停止
MORTOR_Left(); //电机左转
DelayMs(600);
MORTOR_Stop(); //电机停止
MORTOR_Straight(); //电机直走
DelayMs(2500); //走8s到第二个拐弯处
MORTOR_Stop(); //电机停止
MORTOR_Right(); //电机右转1
DelayMs(600);
MORTOR_Stop(); //电机停止
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
盲走程序(无探索区域).rar
(499 KB, 下载次数: 67)
2017-5-24 00:21 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1