標(biāo)題:
STM32小車盲走程序(無探索區(qū)域四路直流電機(jī)調(diào)速 正反轉(zhuǎn)等)
[打印本頁]
作者:
寒羽
時間:
2017-5-23 22:56
標(biāo)題:
STM32小車盲走程序(無探索區(qū)域四路直流電機(jī)調(diào)速 正反轉(zhuǎn)等)
四路直流電機(jī)正反轉(zhuǎn),調(diào)速程序?qū)崿F(xiàn)STM32小車盲走,無探索區(qū)域
可適用于L298N驅(qū)動電路和H橋模塊
0.png
(72.37 KB, 下載次數(shù): 89)
下載附件
2017-5-24 00:12 上傳
stm32單片機(jī)源程序如下:
#include "stm32f10x.h"
#include "bsp_breathing.h"
#include "delay.h"
#include "bsp_usart1.h"
/**
* @brief 主函數(shù)
* @param 無
* @retval 無
*/
int main(void)
{
DelayInit();
USART1_Config();
TIM2_PWM_Init();
TIM4_PWM_Init();
while(1)
{
/*取元件1*/
MORTOR_Straight(); //電機(jī)直走
DelayS(8); //延時15s電機(jī)直走,到第一個拐彎處
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(4500); //走8s到第二個拐彎處
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1 (轉(zhuǎn)???時間,然后再直走)
DelayMs(600); //轉(zhuǎn)1/4圈
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayS(2); //走4s到第三個拐彎處
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(750);
MORTOR_Stop(); //電機(jī)停止
printf("#1GC1\r\n");
DelayS(10);
/*返回物架1*/
MORTOR_Back();
DelayMs(750);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayS(2);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(4500); //走8s到第二個拐彎處
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(1500);
MORTOR_Stop(); //電機(jī)停止
printf("#2GC1\r\n");
DelayS(10);
/*取元件2*/
MORTOR_Back();
DelayS(1);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(750);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(1500);
MORTOR_Stop(); //電機(jī)停止
printf("#3GC1\r\n");
DelayS(10);
/*返回物架2*/
MORTOR_Back();
DelayMs(1500);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(750);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayS(1);
MORTOR_Stop(); //電機(jī)停止
printf("#4GC1\r\n");
DelayS(10);
/*取元件3*/
MORTOR_Back();
DelayS(1);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(750);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayS(2);
MORTOR_Stop(); //電機(jī)停止
printf("#3GC1\r\n");
DelayS(10);
/*返回物架3*/
MORTOR_Back();
DelayS(2);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(750);
MORTOR_Left(); //電機(jī)停止
MORTOR_Right(); //電機(jī)左轉(zhuǎn)
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayS(4);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn)
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(1750);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500);
MORTOR_Stop(); //電機(jī)停止
printf("#5GC1\r\n");
DelayS(10);
/*取元件4*/
MORTOR_Back();
DelayS(2);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayS(4);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(4500); //走8s到第二個拐彎處
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500); //走8s到第二個拐彎處
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn) (轉(zhuǎn)一圈4.8s = 4800ms)?
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayS(1);
MORTOR_Stop(); //電機(jī)停止
printf("#6GC1\r\n");
DelayS(10);
/*返回物架4*/
MORTOR_Back();
DelayS(1);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Left(); //電機(jī)左轉(zhuǎn)
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
MORTOR_Straight(); //電機(jī)直走
DelayMs(2500); //走8s到第二個拐彎處
MORTOR_Stop(); //電機(jī)停止
MORTOR_Right(); //電機(jī)右轉(zhuǎn)1
DelayMs(600);
MORTOR_Stop(); //電機(jī)停止
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
盲走程序(無探索區(qū)域).rar
(499 KB, 下載次數(shù): 67)
2017-5-24 00:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1