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

標題: 基于stm32f103c8t6的智能避障小車源碼 藍牙控制4位數碼管顯示 [打印本頁]

作者: wulikanhua    時間: 2018-6-5 09:36
標題: 基于stm32f103c8t6的智能避障小車源碼 藍牙控制4位數碼管顯示
利用超聲波測距檢測距離,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)



作者: admin    時間: 2018-6-5 18:23
電路及介紹呢?
作者: xcnyw    時間: 2018-12-31 09:11
謝謝,下來學習學習




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧洲一级毛片 | 免费视频一区二区 | 国产精品一级二级 | 免费一级大片 | 一区在线观看视频 | 久久久久久九九九九 | 亚洲区在线 | 激情六月婷婷 | 69免费视频| 久精品视频| 秋霞午夜鲁丝一区二区老狼 | 久久av免费 | 久久久久免费 | 久久综合亚洲 | 亚洲综合五月天婷婷丁香 | 青青草国产成人av片免费 | 天天插天天透 | 欧美资源在线 | 亚洲观看黄色网 | 亚洲精品成a人在线观看 | 免费的黄色小视频 | 国产又色又爽又黄又免费 | 日韩少妇av | 黄色一级片网站 | 亚洲精品久久久久久久久 | 一级久久| a级黄色片 | 99在线播放| 日本美女毛茸茸 | 色综合天天综合网天天狠天天 | 成年人黄色片 | 欧美久久久久久久久久 | 九九在线观看高清免费 | 日韩小视频在线观看 | 久久综合99 | 中文字幕av片 | 成人在线免费视频观看 | 激情高潮到大叫狂喷水 | 精品免费观看 | 在线色综合 | 欧美一二 |