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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

GD32單片機藍牙接口的2路直流電機驅動板設計 含pcb源碼等全套資料

[復制鏈接]
跳轉到指定樓層
樓主
ID:219113 發(fā)表于 2018-8-1 10:31 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
資料包:


實物照片:


功能及說明
  • 基本功能
  • 兩路直流電機驅動,可調速和正反轉控制。
  • 兩路正交編碼器接口,可用于電機速度反饋。
  • 1路USB轉串口,用于電路的參數設定。
  • 6軸運動處理器件MPU6050,可用于平衡小車的開發(fā)。
  • 藍牙4.0接口模塊,可通過手機上的app(TTC-BLE)對電機進行加速、減速、正反轉控制。
  • DC12V供電。
  • 1個USB指示燈、1個藍牙模塊指示燈、2個用戶指示燈(用戶程序控制)
  • 1個輕觸開關,供用戶程序使用。
  • 各部分電路說明
  • 供電接口
本模塊采用DC12V供電,供電接口有2針2.54端子,并配有船型手動電源開關。
2、USB接口
USB接口為USB轉串口,選擇的芯片為CH340E,串口連接到單片機的USART0口,供用戶程序使用,并帶有LED指示燈。
3、單片機調試口和boot設定
GD32F330CBT6單片機采用的SWD調試口,開發(fā)環(huán)境MDK或IAR,開發(fā)工具為ST-LINK V2,資料中的程序兩種開發(fā)環(huán)境都支持。電路中將BOOT0腳引出,可通過跳線開關去選擇單片機的啟動程序地址,可通過跳線選擇BOOT0腳后,用USART0對用戶程序進行升級,具體操作參見單片機的數據手冊。
4、電機驅動電路
本電路中具有2路電機驅動接口,同時可以接2路正交編碼器,可對電機轉速和方向實時反饋;驅動芯片采用RZ7889,一款 DC 雙向馬達驅動電路,它適用于玩具等類的電機驅動、自動閥門電機驅動、電磁門鎖驅動等。它有兩個邏輯輸入端子用來控制電機前進、后退及制動。該電路具有良好的抗干擾性,微小的待機電流、低的輸出內阻,同時,他還具有內置二極管能釋放感性負載的反向沖擊電流。工作電壓3-15V。電機驅動用到單片機的TIMER15和TIMER16,編碼器檢測用到單片機的TIMER1和TIMER2,具體操作參見程序。
56軸運動傳感器電路
MPU-6050是世界上第一款集成 6 軸MotionTracking設備。它集成了3軸MEMS陀螺儀,3軸MEMS加速度計。 MPU-6050也可以通過其I2C接口連接非慣性的數字傳感器,比如壓力傳感器。MPU-6050對陀螺儀和加速度計分別用了三個16位的ADC,將其測量的模擬量轉化為可輸出的數字量。為了精確跟蹤快速和慢速的運動,傳感器的測量范圍都是用戶可控的,陀螺儀可測范圍為±250, ±500, ±1000, ±2000°/秒( dps),加速度計可測范圍為±2, ±4,±8, ±16g。
可以采用本電路中的6軸運動傳感器和2路直流電機控制做兩輪平衡小車的開發(fā)。
6藍牙接口
藍牙接口采用的是深圳市昇潤科技有限公司的HY-254101 V1藍牙4.0模塊。使用簡單,無需任何藍牙協議棧應用經驗。支持藍牙主機、藍牙從機、藍牙主從一體,共 3 種版本。用戶接口使用通用串口設計,全雙工雙向通訊,最低波特率支持 9600bps。通過AT命令對模塊進行控制,再配上手機端的TCC-BLE軟件可以和模塊進行實時通信控制。模塊的詳細資料參照附件中資料。
7狀態(tài)指示
本模塊供有4個LED指示燈,分別是2個用戶程序控制用指示燈、CH340E驅動指示燈、藍牙模塊指示燈。

單片機源程序如下:

  1. #include "gd32f3x0.h"
  2. #include "systick.h"
  3. #include <stdio.h>
  4. #include "config.h"



  5. unsigned char rtemp[6] = {'1','2','3','4','5','6'};
  6. unsigned char pbuf[20];
  7. signed short temper;
  8. signed short ax,ay,az;
  9. signed short gx,gy,gz;

  10. /************************************************************************
  11. ** 函 數 名:   main
  12. ** 功能描述:   主函數
  13. ** 輸入參數:   無
  14. ** 輸出參數:   無
  15. ** 返 回 值:   無        
  16. ** 作    者:   王超
  17. ** 日    期:   2018.4
  18. **------------------------------------------------------------------------
  19. ** 修    改:
  20. ** 修改日期:
  21. *************************************************************************/
  22. void Rcu_Periph_Clk_Init(void)
  23. {
  24.   rcu_periph_clock_enable(RCU_GPIOA);
  25.   rcu_periph_clock_enable(RCU_GPIOB);
  26.   rcu_periph_clock_enable(RCU_GPIOC);
  27.   rcu_periph_clock_enable(RCU_GPIOD);
  28.   rcu_periph_clock_enable(RCU_GPIOF);
  29.   rcu_periph_clock_enable(RCU_USART0);
  30.   rcu_periph_clock_enable(RCU_USART1);
  31.   rcu_periph_clock_enable(RCU_TIMER15);
  32.   rcu_periph_clock_enable(RCU_TIMER16);
  33.   rcu_periph_clock_enable(RCU_TIMER1);
  34.   rcu_periph_clock_enable(RCU_TIMER2);
  35.   rcu_periph_clock_enable(RCU_TIMER5);
  36. }
  37. /************************************************************************
  38. ** 函 數 名:   UserGpio_Config
  39. ** 功能描述:   IO口初始化
  40. ** 輸入參數:   無
  41. ** 輸出參數:   無
  42. ** 返 回 值:   無        
  43. ** 作    者:   王超
  44. ** 日    期:   2018.4
  45. **------------------------------------------------------------------------
  46. ** 修    改:
  47. ** 修改日期:
  48. *************************************************************************/
  49. void UserGpio_Config(void)
  50. {
  51.   gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_4);//KEY  
  52.   gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_5);//STA2 LED
  53.   gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);
  54.   gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_6);//STA1 LED
  55.   gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
  56.   
  57.   //MOTO 互補PWM 死區(qū)
  58.   gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_6);
  59.   gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_7);
  60.   gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_8);
  61.   gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_9);   
  62.   gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_6);
  63.   gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_6);
  64.   gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_7);
  65.   gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_7);
  66.   gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_8);
  67.   gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_8);
  68.   gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_9);
  69.   gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_9);
  70.   //MOTO 編碼器
  71.   gpio_af_set(GPIOB, GPIO_AF_1, GPIO_PIN_4);
  72.   gpio_af_set(GPIOB, GPIO_AF_1, GPIO_PIN_5);
  73.   gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_3);
  74.   gpio_af_set(GPIOA, GPIO_AF_2, GPIO_PIN_15);
  75.   gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_15);
  76.   gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3);
  77.   gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_4);
  78.   gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5);
  79. }
  80. /************************************************************************
  81. ** 函 數 名:   main
  82. ** 功能描述:   主函數
  83. ** 輸入參數:   無
  84. ** 輸出參數:   無
  85. ** 返 回 值:   無        
  86. ** 作    者:   王超
  87. ** 日    期:   2018.4
  88. **------------------------------------------------------------------------
  89. ** 修    改:
  90. ** 修改日期:
  91. *************************************************************************/
  92. int main(void)
  93. {  
  94.   systick_config();
  95.   Rcu_Periph_Clk_Init();
  96.   
  97.   UserGpio_Config();
  98. //  Usart0_Init();//USART0初始化  
  99. //  printf("USART0 Init successfully!");
  100.   
  101.   MotoCtrlPwmInit();
  102.   Encoder_M1_Init();
  103.   Encoder_M2_Init();
  104.   Timer5_Init();
  105.   
  106.   MPU_Init();
  107.   delay_1ms(20);
  108.   temper = MPU_Get_Temperature();
  109.   
  110.   Bluetooth_Init();
  111.   //BluetoothATCmdSend("AT\r\n");
  112.         
  113.   while(1)
  114.   {
  115.         
  116.     //MPU_Get_Accelerometer(&ax,&ay,&az);
  117.     //MPU_Get_Gyroscope(&gx,&gy,&gz);
  118.     //temper = TIMER_CNT(TIMER2);
  119.     //temper = MPU_Get_Temperature();
  120.   }
  121. }
  122. /************************************************************************
  123. ** 函 數 名:   Delay_us
  124. ** 功能描述:   us級延時
  125. ** 輸入參數:   us 延時時間
  126. ** 輸出參數:   無
  127. ** 返 回 值:   無        
  128. ……………………

  129. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載(內含原理圖與pcb及gd32單片機源碼等全套開發(fā)資料):
藍牙接口的2路直流電機驅動板.zip (14.85 MB, 下載次數: 71)



評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:401247 發(fā)表于 2019-10-12 10:39 | 只看該作者
很好的資料    求教程
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.三级| 精品免费在线 | 国产欧美一区二区精品忘忧草 | 蜜桃视频麻豆 | 日日天天 | 激情欧美日韩一区二区 | 91精品久久久久久久久久小网站 | 久久噜噜噜精品国产亚洲综合 | 91一区二区三区在线观看 | 久久国产精品亚洲 | 国产一级免费在线观看 | 一区二区亚洲 | 一区二区三区国产好 | 久久久久久久国产精品 | 国产精品一区一区 | 国产一区二区自拍 | 日韩成人精品视频 | 在线观看成人 | 91精品久久久久久久久久 | 欧美一区二区三区在线看 | 精品久久久久久 | 麻豆一区二区三区 | 国产精品亚洲成在人线 | 亚洲精品福利视频 | 日本a视频 | 久久51| 视频一区二区在线观看 | 国产日韩精品一区二区三区 | 国产一区二区三区四区 | 毛片毛片毛片毛片 | www.99热这里只有精品 | 中文久久 | 国内自拍偷拍 | 久夜精品 | 亚洲天堂中文字幕 | 欧美日韩国产一区二区三区 | 91在线一区 | 特级生活片 | 欧美一级免费看 | 成人免费视频网站在线观看 | 一级欧美日韩 |