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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32F103AGV小車程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:477393 發表于 2019-6-22 22:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
功能:同時實現自主循跡、自動避障、紅外遙控、舵機運動

單片機源程序如下:
  1. //連接方式 :請參考interface.h文件
  2. #include "stm32f10x.h"
  3. #include "interface.h"
  4. #include "LCD1602.h"
  5. #include "IRCtrol.h"
  6. #include "motor.h"
  7. #include "uart.h"
  8. #include "redvoid.h"
  9. #include "UltrasonicCtrol.h"

  10. //全局變量定義
  11. unsigned int speed_count=0;//占空比計數器 50次一周期
  12. char front_left_speed_duty=SPEED_DUTY;
  13. char front_right_speed_duty=SPEED_DUTY;
  14. char behind_left_speed_duty=SPEED_DUTY;
  15. char behind_right_speed_duty=SPEED_DUTY;

  16. unsigned char tick_5ms = 0;//5ms計數器,作為主函數的基本周期
  17. unsigned char tick_1ms = 0;//1ms計數器,作為電機的基本計數器
  18. unsigned char tick_200ms = 0;//刷新顯示

  19. char ctrl_comm = COMM_STOP;//控制指令
  20. char ctrl_comm_last = COMM_STOP;//上一次的指令
  21. unsigned char continue_time=0;
  22. unsigned char bt_rec_flag=0;//藍牙控制標志位

  23. unsigned char duoji_count=0;
  24. unsigned char zhuanjiao = 11;

  25. void DuojiMid()
  26. {
  27.         zhuanjiao = 12;
  28.         Delayms(300);
  29. }

  30. void DuojiRight()
  31. {
  32.         zhuanjiao = 14;
  33.         Delayms(300);
  34. }

  35. void DuojiLeft()
  36. {
  37.         zhuanjiao = 10;
  38.         Delayms(300);
  39. }

  40. //循跡,通過判斷三個光電對管的狀態來控制小車運動
  41. void SearchRun(void)
  42. {
  43.         //三路都檢測到
  44.         if(SEARCH_M_IO == BLACK_AREA && SEARCH_L_IO == BLACK_AREA && SEARCH_R_IO == BLACK_AREA)
  45.         {
  46.                 ctrl_comm = COMM_UP;
  47.                 DuojiLeft();
  48.                 return;
  49.         }
  50.         if(VOID_R_IO == BARRIER_Y && VOID_L_IO == BARRIER_Y)
  51.         {
  52.                 VoidRun();
  53.         }
  54.         else if(VOID_L_IO == BARRIER_Y)
  55.         {
  56.                 VoidRun();
  57.         }
  58.         else if(VOID_R_IO == BARRIER_Y)
  59.         {
  60.                 VoidRun();
  61.         }
  62.         else if(SEARCH_R_IO == BLACK_AREA)//右
  63.         {
  64.                 ctrl_comm = COMM_RIGHT;
  65.         }
  66.         else if(SEARCH_L_IO == BLACK_AREA)//左
  67.         {
  68.                 ctrl_comm = COMM_LEFT;
  69.         }
  70.         else if(SEARCH_M_IO == BLACK_AREA)//中
  71.         {
  72.                 ctrl_comm = COMM_UP;
  73.         }
  74.         if(SEARCH_M_IO == WHITE_AREA && SEARCH_L_IO == WHITE_AREA && SEARCH_R_IO == WHITE_AREA)
  75.                 {
  76.                         continue_time--;//200ms 無接收指令就停車
  77.                         if(continue_time == 0)
  78.                         {
  79.                                 continue_time = 1;
  80.                                 CarStop();
  81.                         }
  82.                 if(ir_rec_flag == 1)//接收到紅外信號
  83.                         {
  84.                                 ir_rec_flag = 0;
  85.                                 switch(ctrl_comm)
  86.                                 {
  87.                                         case COMM_UP:    CarGo();break;
  88.                                         case COMM_DOWN:  CarBack();break;
  89.                                         case COMM_LEFT:  CarLeft();break;
  90.                                         case COMM_RIGHT: CarRight();break;
  91.                                         case COMM_STOP:  CarStop();DuojiRight();break;
  92.                                         default : break;
  93.                                 }
  94.                                 LCD1602WriteCommand(ctrl_comm);
  95.                         }
  96.         }
  97. }


  98. int main(void)
  99. {
  100.         delay_init();
  101.         GPIOCLKInit();
  102.         UserLEDInit();
  103.         LCD1602Init();
  104.         IRCtrolInit();
  105.         TIM2_Init();
  106.         MotorInit();
  107.         ServoInit();
  108.        
  109.         RedRayInit();
  110.         //USART3Conf(9600);

  111. while(1)
  112. {         
  113.                          if(tick_5ms >= 5)
  114.                 {
  115.                         tick_5ms = 0;
  116.                         tick_200ms++;
  117.                         if(tick_200ms >= 40)
  118.                         {
  119.                                 tick_200ms = 0;
  120.                                 LEDToggle(LED_PIN);
  121.                         }
  122. //                        continue_time--;//200ms 無接收指令就停車
  123. //                        if(continue_time == 0)
  124. //                        {
  125. //                                continue_time = 1;
  126. //                                CarStop();
  127. //                        }
  128.                         //do something
  129.                         SearchRun();
  130.                         if(ctrl_comm_last != ctrl_comm)//指令發生變化
  131.                         {
  132.                                 ctrl_comm_last = ctrl_comm;
  133.                                 switch(ctrl_comm)
  134.                                 {
  135.                                         case COMM_UP:    CarGo();break;
  136.                                         case COMM_DOWN:  CarBack();break;
  137.                                         case COMM_LEFT:  CarLeft();break;
  138.                                         case COMM_RIGHT: CarRight();break;
  139.                                         case COMM_STOP:  CarStop();break;
  140.                                         default : break;
  141.                                 }
  142.                                 Delayms(10);//防抖
  143.                                 LCD1602WriteCommand(ctrl_comm);
  144.                         }
  145.                 }
  146.                
  147. }
  148. }
復制代碼

所有資料51hei提供下載:
移動機器人.zip (5.58 MB, 下載次數: 73)


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

使用道具 舉報

沙發
ID:588621 發表于 2019-8-2 18:42 來自觸屏版 | 只看該作者
謝謝,有沒有連接圖吶
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕免费在线观看 | 亚洲一区二区三区视频 | 一区二区三区国产好 | 日韩欧美视频网站 | 免费在线观看一区二区三区 | 99久久电影| 天堂在线免费视频 | 午夜久久av| 日韩精品av一区二区三区 | 91中文字幕在线观看 | 亚洲成人免费电影 | 欧美精品一区二区三区在线播放 | h视频在线免费观看 | 毛片视频免费观看 | 亚洲视频中文字幕 | 精品国产伦一区二区三区观看体验 | 久久久久久久久久久91 | 狠狠干2020 | 中文字幕一区二区三区四区五区 | 日日摸日日碰夜夜爽2015电影 | 国产精品久久久av | 亚洲精品一区中文字幕乱码 | 色男人的天堂 | 日本精品一区二区三区在线观看 | 黄色一级大片在线免费看产 | 国产欧美在线观看 | 综合久久久 | www免费视频 | 久久精品国产一区二区三区不卡 | 91视频网 | 久草影视在线 | 国产精品久久久久久一区二区三区 | 国产精品日韩一区二区 | 国产福利视频在线观看 | 嫩草视频网 | 日韩国产精品一区二区三区 | 日韩免费在线视频 | 成人伊人 | 日韩精品在线播放 | 干一干操一操 | 久草视频在线播放 |