標(biāo)題: 關(guān)于stm32f103c8t6使用PWM控制小車的經(jīng)驗(yàn) 避障加藍(lán)牙 [打印本頁]

作者: splendid    時(shí)間: 2017-3-4 16:15
標(biāo)題: 關(guān)于stm32f103c8t6使用PWM控制小車的經(jīng)驗(yàn) 避障加藍(lán)牙
這個(gè)是我之前通過不斷的查資料和更該寫的使用stm32f103c8t6控制電機(jī),并且可調(diào)速的程序,對于新手可以有一些參考作用!!
f103c8t6 - 避障加藍(lán)牙完整PWM控制的源程序:

完整源碼下載:
f103c8t6 - 避障加藍(lán)牙完整PWM控制.zip (4.28 MB, 下載次數(shù): 601)



下面是主程序預(yù)覽:
  1. #include"usart.h"
  2. #include"pwm.h"
  3. #include"sys.h"
  4. #include"delay.h"
  5. #include"hw.h"
  6. #include"csb.h"
  7. #include"lanya.h"
  8. int main()
  9. {
  10.         int left,right,bzl,bzr,counter,i=0,j,max;
  11.         u16 distance,dis[5];
  12.         uart_init(9600);
  13.         hw_init();

  14.   delay_init();  //初始化延時(shí)函數(shù)
  15.         PWM_Init(600,0);
  16.        
  17.         while(1)
  18.                 {

  19.                
  20.           lanya();       
  21.                 bzl=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);//避障左邊傳感器
  22.                 bzr=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4);
  23.                
  24. //                        printf("dis=%u\r\n",distance);
  25. //                        delay_ms(500);
  26. //         
  27. //                        printf("i=%d\r\n",i);

  28.                         //直行

  29.                
  30.                 max=0;
  31.                 for(counter=0;counter<5;counter++)
  32.                 {                       
  33.                 dis[counter]=csb();       
  34.                 }
  35.                 for(j=0;j<5;j++)
  36.                 {
  37.                 max=max+dis[j];
  38.                 }
  39.                 distance=max/5;
  40.                
  41.                         //直行
  42.                         //左邊
  43.                
  44.                        
  45.                  if(bzr==0)//左轉(zhuǎn)
  46.                 {
  47.                                
  48.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  49.                                         TIM_SetCompare4(TIM2,600);//PA3為低
  50.                                        
  51.                                         TIM_SetCompare2(TIM3,600);//PA7反轉(zhuǎn)
  52.                                         TIM_SetCompare1(TIM3,0);//PA6為
  53.                                                 delay_ms(20);
  54.                                
  55.                
  56.                 }
  57.                        
  58.                 if(bzl==0)//右轉(zhuǎn)
  59.                 {
  60.        
  61.                 TIM_SetCompare3(TIM2,600);//PA2反轉(zhuǎn)
  62.                 TIM_SetCompare4(TIM2,1);//PA3為
  63.                                
  64.           TIM_SetCompare2(TIM3,0);//PA7提速
  65.                 TIM_SetCompare1(TIM3,600);//PA6為低
  66.                         delay_ms(20);       
  67.          
  68.        
  69.                 }
  70.                 if(distance<200)//左轉(zhuǎn)
  71.                 {
  72.                        
  73.                        
  74.                        
  75.                                        
  76.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  77.                                         TIM_SetCompare4(TIM2,600);//PA3為低
  78.                                        
  79.                                         TIM_SetCompare2(TIM3,600);//PA7反轉(zhuǎn)
  80.                                         TIM_SetCompare1(TIM3,0);//PA6為
  81.                                                 delay_ms(20);
  82.                        
  83.                
  84.                 }
  85.                 if(bzl==0&&distance<200)
  86.                 {
  87.                
  88.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  89.                                         TIM_SetCompare4(TIM2,600);//PA3為低
  90.                                        
  91.                                         TIM_SetCompare2(TIM3,600);//PA7反轉(zhuǎn)
  92.                                         TIM_SetCompare1(TIM3,0);//PA6為
  93.                                                 delay_ms(20);
  94.          
  95.                 }
  96.                 if(bzr==0&&distance<200)
  97.                 {
  98.                
  99.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  100.                                         TIM_SetCompare4(TIM2,600);//PA3為低
  101.                                        
  102.                                         TIM_SetCompare2(TIM3,600);//PA7反轉(zhuǎn)
  103.                                         TIM_SetCompare1(TIM3,0);//PA6為
  104.                                                 delay_ms(20);
  105.          
  106.                 }
  107.                 if(bzr==0&&bzl==0)
  108.                 {
  109.                      
  110.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  111.                                         TIM_SetCompare4(TIM2,600);//PA3為低
  112.                                        
  113.                                         TIM_SetCompare2(TIM3,600);//PA7反轉(zhuǎn)
  114.                                         TIM_SetCompare1(TIM3,0);//PA6為
  115.                                                 delay_ms(20);
  116.                
  117.                 }
  118.                 if(bzr==0&&bzl==0&&distance<200)
  119.                 {
  120.                              TIM_SetCompare3(TIM2,0);//PA2提速
  121.                                         TIM_SetCompare4(TIM2,600);//PA3為低
  122.                                        
  123.                                         TIM_SetCompare2(TIM3,600);//PA7反轉(zhuǎn)
  124.                                         TIM_SetCompare1(TIM3,0);//PA6為
  125.                                                 delay_ms(30);
  126.                                 }
  127.                
  128.                 }
  129.                 TIM_SetCompare2(TIM3,200);//PA7
  130.                 TIM_SetCompare1(TIM3,600);//PA6為低
  131.                         //右邊
  132.                 TIM_SetCompare3(TIM2,200);//PA2
  133.                 TIM_SetCompare4(TIM2,600);//PA3為低
  134.                 delay_ms(20);


  135.        
  136. }
復(fù)制代碼

作者: liangqin1573    時(shí)間: 2017-3-7 13:43
感謝分享,正在學(xué)習(xí)103中
作者: splendid    時(shí)間: 2017-3-7 19:56
liangqin1573 發(fā)表于 2017-3-7 13:43
感謝分享,正在學(xué)習(xí)103中

新手建議從手冊開始學(xué)習(xí),將講解看懂了再寫
作者: liangqin1573    時(shí)間: 2017-3-14 17:58
splendid 發(fā)表于 2017-3-7 19:56
新手建議從手冊開始學(xué)習(xí),將講解看懂了再寫

自己買了塊stm32f103c8t6最小系統(tǒng)板,現(xiàn)在把IO輸出,定時(shí)器,RTC,PWM都弄一遍了。還搞了塊OLED,SPI通訊的,把RTC弄成萬年歷功能,在OLED上顯示。
還買了AM2320、HTU21溫濕度傳感器,把I2C也學(xué)了,弄上去顯示溫度。

還學(xué)了ADC轉(zhuǎn)換,DMA方式自動讀取數(shù)據(jù),實(shí)現(xiàn)了10K的熱敏電阻讀取溫度。
后面還再弄了塊LCD。STM32學(xué)習(xí)起來比51爽啊,好多自己想實(shí)現(xiàn)的東西就往里面填充。。。
我是空調(diào)行業(yè)搞PLC自控的,所以最先想到的就是溫濕度的東西,正在學(xué)單片機(jī),請樓主不吝賜教






作者: holycaca    時(shí)間: 2017-4-19 11:57
感謝分享
作者: holycaca    時(shí)間: 2017-4-19 11:58
樓主有用L298N嗎

作者: 20132146    時(shí)間: 2017-4-23 20:56
感謝樓主分享!。
作者: 20132146    時(shí)間: 2017-4-23 21:00
感謝分享
作者: 江中郎    時(shí)間: 2017-6-1 02:09
感想分享
作者: 671208    時(shí)間: 2017-7-27 09:05
謝謝分享

作者: 城啊    時(shí)間: 2017-8-3 12:10
謝謝樓主分享
作者: splendid    時(shí)間: 2017-8-5 22:44
holycaca 發(fā)表于 2017-4-19 11:58
樓主有用L298N嗎

是的,用的就是L298N
作者: huangjiekaiming    時(shí)間: 2017-8-7 04:24
大家都用298,好好學(xué)習(xí)
作者: cqgdlq    時(shí)間: 2017-11-8 23:13
數(shù)據(jù)接受能行嗎?
作者: joncy    時(shí)間: 2018-1-4 16:45
很好
能夠有幫助
作者: 胡校鋒    時(shí)間: 2018-2-1 19:25
學(xué)習(xí)中,感謝你的代碼,給了我不少幫助。
作者: fkssa    時(shí)間: 2018-2-22 22:37
厲害厲害,感謝分享,我們正要求做類似的比賽用,感謝分享
作者: mjkami    時(shí)間: 2018-3-12 09:39
謝謝分享
作者: Haydn1    時(shí)間: 2018-4-14 15:53
感謝樓主,正在學(xué)習(xí)STM32的開發(fā)
作者: XuLing    時(shí)間: 2018-4-16 18:16
你搭建的圖呢,只有程序嗎
作者: ly1728380873    時(shí)間: 2018-5-16 13:34
電腦總是識別有病毒是什么鬼  求分享一下  謝謝 1917055575@qq.com
作者: 扭曲的黑    時(shí)間: 2018-5-25 16:00
感覺很厲害的
作者: 田聯(lián)    時(shí)間: 2018-6-5 16:41
準(zhǔn)備學(xué)習(xí)STM單片機(jī) 正好需要,非常感謝!
作者: peming    時(shí)間: 2018-6-15 21:25
謝謝分享

作者: guokexiaoming    時(shí)間: 2018-7-2 17:31
正需要PWM來控制舵機(jī)。感謝樓主
作者: ALongTime    時(shí)間: 2018-8-7 19:02
感謝大佬分享,新手上路ing,就需要各種例程^_^
作者: ALongTime    時(shí)間: 2018-8-14 19:42
你好,有實(shí)物圖或者硬件電路圖嗎?還有,請問這里藍(lán)牙實(shí)現(xiàn)的是什么功能?
作者: vpoppend    時(shí)間: 2018-9-13 13:57
感謝分享,正在學(xué)習(xí)103中
作者: 之一知足    時(shí)間: 2018-10-2 00:19
樓主,有沒有手機(jī)藍(lán)牙控制的APP?
作者: bettyliu    時(shí)間: 2018-10-17 09:14
有沒有硬件搭建,,求賜
作者: ABCDEFG1888    時(shí)間: 2018-10-24 13:13
你好,樓主,請問你的csb.c是關(guān)于什么的呢?有點(diǎn)看不懂
作者: jetty-9    時(shí)間: 2018-10-24 19:51
只看了一部分代碼,請問樓主這個(gè)代碼是驅(qū)動四個(gè)輪子的嘛?
作者: wodemayaaa    時(shí)間: 2018-11-10 16:10
感謝樓主
作者: ldg9    時(shí)間: 2018-11-10 18:58

感謝樓主分享!。
作者: splendid    時(shí)間: 2019-1-14 23:33
ABCDEFG1888 發(fā)表于 2018-10-24 13:13
你好,樓主,請問你的csb.c是關(guān)于什么的呢?有點(diǎn)看不懂

那是超聲波避障函數(shù)
作者: jijkf    時(shí)間: 2019-1-16 11:29
程序哪里
作者: bluecar    時(shí)間: 2019-2-16 13:47
很給力的文件
作者: 192141477    時(shí)間: 2019-8-4 14:48
幫助較大
作者: 遷就    時(shí)間: 2019-8-4 16:18
謝謝分享
作者: 全俊瑋    時(shí)間: 2019-9-16 21:19
好東西 可以啊




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1