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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2349|回復: 0
收起左側

stm32f103的自動調節角度的源程序

[復制鏈接]
ID:346849 發表于 2018-6-23 19:21 | 顯示全部樓層 |閱讀模式
用電位器讀取角度,通過小車的加速度來控制下面擺桿

單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "adc.h"
  5. #include "Ultrasonic.h"
  6. #include "control.h"
  7. //u32 Distance1,Distance2;  
  8. float Set_Angle;
  9. //角速度和角度向左為正,向右為負
  10. extern u32 TIM1_CH1_Time;        //CH1測量方波1的高電平時間,用于計算占空比
  11. extern u32 TIM1_CH4_Time;        //CH4測量方波2的兩個上升沿間隔時間,用于計算周期
  12. extern u16 TIM1CH1_CAPTURE_STA ;        //通道1輸入捕獲標志,15位做捕獲標志,低15位做溢出標志               
  13. extern u16 TIM1CH1_CAPTURE_UPVAL,TIM1CH1_CAPTURE_DOWNVAL;
  14. extern u16 TIM1CH4_CAPTURE_STA;        //通道1輸入捕獲標志,15位做捕獲標志,低15位做溢出標志                       
  15. extern u16 TIM1CH4_CAPTURE_UPVAL,TIM1CH4_CAPTURE_DOWNVAL;

  16. int KEY1_Num,KEY2_Num,KEY3_Num,KEY4_Num;
  17. int m;
  18. int n=0;
  19. int a=0;
  20. float Place;
  21. float Angle;
  22. float Speed_Left,Speed_Right;   
  23. float angle1;               //角度傳感器所得角度
  24. float temp;
  25. u8 dir=1;
  26. u8 d[15];
  27. int main(void)
  28. {
  29.             vu8 key=0;
  30.             delay_init();
  31.                   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  32.             LED_Init();
  33.             OLED_Init();
  34.       KEY_Init();
  35. //           uart_init(9600);
  36.            PWM_Init(7199,0);                   //10KHZ
  37.            Ultrasonic_Init();
  38.      TIM3_Cap_Init(0XFFFF,72-1);                //=====超聲波初始化       
  39.            TIM5_Time_Init(4999,7199);
  40.            Adc_Init();       
  41.            BEEP_Init();
  42.            while(1)
  43.                 {
  44.                         angle1=Get_angle1_Average(4,5);
  45.                         Ultrasonic_Dis_Turn();         
  46.                         Ultrasonic_Trig();
  47. //                         Place=Dis_FIR.FRONT;
  48. //      Place=Dis_FIR.FRONT;
  49. //                        Angle1_PID(angle1,2000);
  50. //                        SetSpeed=Place_PID(Place);
  51.                         OLED_ShowString(0,0,"Dis_FIR");
  52.                         OLED_ShowNum(60,0,Dis_FIR.FRONT,5,12);
  53.                         OLED_ShowString(0,1,"Dis_BACK");
  54.       OLED_ShowNum(60,1,Dis_FIR.BACK,5,12);
  55.                         OLED_ShowString(0,2,"angle1");
  56.                         OLED_ShowNum(60,2,angle1,5,12);
  57.                         OLED_ShowString(0,3,"PWMA");
  58.                         OLED_Float(60,3,PWMA,1);
  59.                         OLED_ShowString(0,4,"PWMB");
  60.                         OLED_Float(60,4,PWMB,1);
  61.                                 Angle1_PID(angle1,2235);
  62.                          Angle_PWM=Angle1_PID(angle1,2190);
  63.                          Set_Pwm(Angle_PWM,Angle_PWM);
  64. //                                Angle1_PID(angle1,2235);
  65. //                         Angle_PWM=Angle1_PID(angle1,2235);
  66. //                         Set_Pwm(Angle_PWM,Angle_PWM);
  67.                         delay_ms(10);
  68.                          key=KEY_Scan(0);        //得到鍵值
  69.                    if(key)
  70.                 {                                                  
  71.                         switch(key)
  72.                 {                                 
  73.                          case KEY0_PRES:        //控制LED0翻轉
  74.                          Set_Pwm(1500,1500);
  75.                          break;
  76.        case KEY1_PRES:        //控制LED0翻轉
  77. //                         Angle1_PID(angle1,2235);
  78. //                         Angle_PWM=Angle1_PID(angle1,2235);
  79. //                         Set_Pwm(Angle_PWM,Angle_PWM);
  80.                          delay_ms(10);
  81.                          break;
  82.                          case KEY2_PRES:        //控制LED0翻轉
  83.                                  Turn_Off();
  84.                          break;
  85. //                         case KEY3_PRES:        //控制LED1翻轉         
  86. //                                        LED1=!LED1;
  87.                        

  88.                 }
  89. }
  90. }
  91. }
  92. //                 key=KEY_Scan(0);        //得到鍵值
  93. //                   if(key)
  94. //                {                                                  
  95. //                        switch(key)
  96. //                        {                                 
  97. //                         case KEY1_PRES:        //控制LED0翻轉
  98. //                                         Turn_Off();
  99. //                         break;
  100. //                         case KEY2_PRES:        //控制LED0翻轉
  101. //                                        LED1=!LED1;
  102. //                         break;
  103. //                         case KEY3_PRES:        //控制LED1翻轉         
  104. //                                        LED1=!LED1;
  105. //                         break;
  106. //                         case KEY0_PRES:        //同時控制LED0,LED1翻轉
  107. //                                        LED2=!LED2;
  108. //                                        LED1=!LED1;
  109. //                         break;
復制代碼

所有資料51hei提供下載:
F1小車.rar (317.32 KB, 下載次數: 7)


評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费网站观看www在线观 | 香蕉视频一区二区 | 亚洲国产中文字幕 | 欧美性生交 | 四虎影院在线 | 欧美日韩精品 | 亚洲欧美日韩一区二区三区四区 | 97精品在线视频 | 亚洲精品大片 | 天天干b | 18成人免费观看网站 | 国产精品一区二区av | 一级免费片 | 亚洲午夜精品一区二区三区 | 在线婷婷 | 天天干天天操天天干 | 亚洲激情中文字幕 | 日韩精品一区二区三区免费视频 | 韩日欧美| 黄色国产视频 | 天天拍夜夜操 | 中国黄色1级片 | 亚洲经典av | 精品欧美一区二区三区久久久 | 久久久久国产视频 | 国产精品成人一区二区 | 日韩av在线免费播放 | 黄网在线播放 | 免费网站黄色 | 亚洲伊人av| 四虎www| 性欧美69 | 成人在线网 | 日本福利在线 | 日韩在线视频免费观看 | 亚洲国产毛片 | 日韩一区二区三区视频 | 亚洲免费看片 | 日日操夜夜 | 国产日韩中文字幕 | 欧美一区二区三 |