久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4413|回復: 2
打印 上一主題 下一主題
收起左側

基于stm32f103c8t6的智能避障小車源碼 藍牙控制4位數碼管顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:341278 發表于 2018-6-5 09:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用超聲波測距檢測距離,4位數碼管顯示的藍牙避障小車。

單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "stm32f10x_conf.h"
  3. #include "led.h"
  4. #include "systick.h"
  5. #include "bizhang.h"
  6. #include "key.h"
  7. #include "zhongduan.h"
  8. #include "tx_rx.h"
  9. #include "timer.h"
  10. #include "TM1637.h"
  11. #include "timer3_pwm.h"
  12. #include "wave.h"
  13. #include "mortor.h"


  14. float UltrasonicWave_Distance;      //計算出的距離
  15. u16 counter;
  16. int main()
  17. {     
  18.         //u8 key=0;
  19.         //u8 BZ_flag=0;
  20.         int i=0,j=0;
  21.         u8 distance[4]={0};
  22.         u16 L=0;

  23.         L=2325;
  24.         distance[0]=code[L/1000];
  25.         distance[1]=code[L%1000/100];
  26.         distance[2]=code[L%100/10];
  27.         distance[3]=code[L%10];

  28.   //timer3_fig();
  29.         uart1_init();
  30.   led_inti();           //LED接PB5,PB6,PB7,PB8(核心板自帶)
  31.         systick_intil();
  32.         uart1_init();
  33.         send_byte(1);

  34.         bizhang_inti();//避障傳感器OUT腳接PA1
  35.         key_inil();    //按鍵接PA0
  36.         timer_confing();
  37.         wave_config();
  38.         TM1637_Init();
  39.         pwm_configuration(2400,599);
  40.         motor_config();
  41.         set_pwm(800,800,800,800);
  42.         motor_stop();
  43.        
  44.         while(1)
  45.         {
  46.                  //發出高電平
  47.                  //啟動測距
  48.                         TIM_Cmd(TIM2, ENABLE);
  49.                   if(led_flag>0)
  50.                   {
  51.                                 TIM_Cmd(TIM2, DISABLE);  
  52.                                 TIM_SetCounter(TIM2,0);
  53.                                 Wave_StarMeasure();
  54.                                 TIM_Cmd(TIM2, DISABLE);
  55.                                 while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2));
  56.                                 //啟動定時器               
  57.                                 TIM_Cmd(TIM2, ENABLE);   
  58.                                 //等待低電平                 
  59.                                 while((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==1));
  60.                                 counter=TIM_GetCounter(TIM2);
  61.                                 TIM_Cmd(TIM2, DISABLE);                          
  62.                                 //數碼管顯示數據
  63.                                 UltrasonicWave_Distance=(float)(counter)/20*340/2;
  64.                                 //UltrasonicWave_Distance=(u16)UltrasonicWave_Distance*1000;
  65.                                 if(UltrasonicWave_Distance<5000)
  66.                                 {
  67.                                         distance[0]=code[(u16)UltrasonicWave_Distance/1000];
  68.                                         distance[1]=code[(u16)UltrasonicWave_Distance%1000/100];
  69.                                         distance[2]=code[(u16)UltrasonicWave_Distance%100/10];
  70.                                         distance[3]=code[(u16)UltrasonicWave_Distance%10];
  71.                                         TM1637_NixieTubeDisplay(distance);
  72.                                 }
  73.                                 led_flag=0;
  74.                         }
  75.                 if(RX_num>=5)
  76.                 {
  77.                         for(i=0;i<RX_num;i++)
  78.                         {
  79.                                 if((RX_buff[i]==0x4f)&&(RX_buff[i+1]==0x4e))
  80.                                 {
  81.                                         switch(RX_buff[i+2])
  82.                                         {  
  83.                                                 case 0x41:;motor_run_forward();break;   //前進
  84.                                                 case 0x42:;motor_run_back();break;      //后退
  85.                                                 case 0x43:;motor_left();break;          //左
  86.                                                 case 0x44:;motor_right();break;         //右
  87.                                                 case 0x45:;motor_stop();break;          //停
  88.                                                
  89.                                                 case 0x31:set_pwm(500,500,500,500);break; //1
  90.                                                 case 0x32:set_pwm(900,900,900,900);break; //2
  91.                                                 case 0x33:set_pwm(1200,1200,1200,1200);break;//3
  92.                                                 case 0x34:set_pwm(1500,1500,1500,1500);break; //4
  93.                                                 case 0x35:set_pwm(1800,1800,1800,1800);break;//5
  94.                                                 case 0x36:set_pwm(2000,2000,2000,2000);break; //6
  95.                                                                                 
  96.                                                 case 0x37:led_on();break; //PB8  7
  97.                                                 case 0x38:led_on();break; //PB4  8
  98.                                                 case 0x39:led_off();break; //OFF PB4 PB8  9
  99.                                                 default:break;
  100.                                         }
  101.                                         RX_num=0;
  102.                                         for(i=0;i<50;i++)
  103.                                         {
  104.                                                 RX_buff[i]=0;
  105.                                         }
  106.                                 }
  107.                         }
  108.                 }
  109.         }
  110. }

  111. void EXTI0_IRQHandler(void)  //按鍵
  112. {
  113.         u16 i,j;
  114.         led_on();
  115.         for(i=0;i<6000;i++)
  116.         {
  117.                 for(j=0;j<6000;j++);
  118.         }
  119.         led_off();
  120.         EXTI_ClearITPendingBit(EXTI_Line0);
  121. }
  122. void EXTI1_IRQHandler(void)//避障
  123. {
  124.         u16 i,j;
  125.         led_on();
  126.         for(i=0;i<6000;i++)
  127.         {
  128.                         for(j=0;j<1000;j++);
  129.         }
  130.         led_off();
  131.         for(i=0;i<6000;i++)
  132.         {
  133.                         for(j=0;j<1000;j++);
  134.         }
  135.         led_on();
  136.         for(i=0;i<6000;i++)
  137.         {
  138.                 for(j=0;j<1000;j++);
  139.         }
  140.         led_off();
  141.         EXTI_ClearITPendingBit(EXTI_Line1);
  142. }
復制代碼

所有資料51hei提供下載:
智能小車.rar (367.53 KB, 下載次數: 64)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-6-5 18:23 | 只看該作者
電路及介紹呢?
回復

使用道具 舉報

板凳
ID:9987 發表于 2018-12-31 09:11 | 只看該作者
謝謝,下來學習學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 性视频网 | 久久精品亚洲精品 | 狠狠躁夜夜躁人人爽天天高潮 | www.久久| 国产高清毛片 | 国产精品小视频在线观看 | 在线国产小视频 | 九九在线视频 | 日韩一区二区三区精品 | 久久久成 | 成人免费在线观看 | 欧美日韩亚洲一区 | 亚洲色片网站 | 伊人网在线综合 | 亚洲三区视频 | 日日操夜夜干 | 国产精品777一区二区 | 久久久91精品国产一区二区三区 | 伊人伊成久久人综合网站 | 日本精品一区二区三区在线观看视频 | 亚洲精品在线观看网站 | 欧美成人精品一区二区男人看 | 天天躁日日躁狠狠躁白人 | 久久久久久久久久影视 | 国产成人高清视频 | 久久新 | 操人网站 | 午夜在线视频 | 在线观看成人 | 国产日韩欧美中文 | 午夜久久久久久久久久一区二区 | 精品中文字幕久久 | 成人在线免费观看 | 性一交一乱一透一a级 | 99成人免费视频 | 91精品国产一区二区三区 | 中日字幕大片在线播放 | 日本不卡免费新一二三区 | 中文字幕免费在线 | 人人干在线视频 | 免费啪啪 |