找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7378|回復(fù): 4
收起左側(cè)

基于stm32f103的藍(lán)牙開關(guān)控制舵機(jī) PCB+代碼 原創(chuàng)DIY

  [復(fù)制鏈接]
ID:372961 發(fā)表于 2019-11-7 14:01 | 顯示全部樓層 |閱讀模式
本設(shè)計為原創(chuàng)DIY作品,2019.10.18日打好PCB樣板,代碼調(diào)試了近10天,出了V1.0版本,還有待改進(jìn)的地方,比如功耗問題,V1.0版本功耗在58毫安左右,經(jīng)改進(jìn)V2.0功耗在2毫安左右(主要是舵機(jī)的待機(jī)功耗,在2.5毫安左右),2.0的板子還沒打好,這里先貼出V1.0的板子設(shè)計和代碼,設(shè)計上或者代碼上有問題的還望大家指正。如需轉(zhuǎn)載,請注明出處,QQ:1907913345,Author:VenceQ1:此電路中主芯片的VCC和GND之間沒有加耦合電容,在電壓不穩(wěn)定的情況下,容易燒壞主芯片,一般情況不會燒壞
Q2:此電路中的按鍵GND腳設(shè)置錯誤,需要的請自行修改板子
Q3:所使用的藍(lán)牙模塊為信馳達(dá)的主從一體4.0
Q4:V1.0的電路圖中我把藍(lán)牙模塊的P05和P04接到BLUE和RED上了,本來希望來用來判斷是否連接成功,發(fā)現(xiàn)這樣設(shè)計的話,沒法將P05拉低,就不能利用藍(lán)牙進(jìn)行停機(jī)喚醒。
Q5:AMS1117可以不使用,本來想用5V的電源來驅(qū)動馬達(dá)的,但是發(fā)現(xiàn)馬達(dá)轉(zhuǎn)速太快,關(guān)不了燈,后來換成了舵機(jī),就不需要AMS1117和HR9110的馬達(dá)驅(qū)動芯片了

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
原理圖:
51hei截圖_20191107132841.png


PCB:
51hei截圖_20191107132942.png


實物:
51hei圖片_20191107133227.jpg 51hei圖片_20191107133232.jpg 51hei圖片_20191107133237.jpg


操作方式:
V1.0版本:藍(lán)牙APP發(fā)送0x01,舵機(jī)轉(zhuǎn)動到-45°,發(fā)送0x02,舵機(jī)轉(zhuǎn)動到-90°,發(fā)送0x11,舵機(jī)轉(zhuǎn)動到45°,發(fā)送0x12,舵機(jī)轉(zhuǎn)動到90°,發(fā)送0x00,舵機(jī)轉(zhuǎn)動到0°。

單片機(jī)主函數(shù)代碼:
  1. //本設(shè)計利用信馳達(dá)進(jìn)行藍(lán)牙通信,通過串口1控制電動馬達(dá)的轉(zhuǎn)動,stm32的PB1控制藍(lán)牙模塊的使能,藍(lán)牙模塊的工作電壓范圍在1.8-3.3V,具有低功耗
  2. //2019年10月22號21點44分,作者Vence
  3. #include "stm32f10x.h"
  4. #include "usart1.h"
  5. #include "bluetooth.h"
  6. #include "key.h"
  7. #include "led.h"
  8. #include "motor.h"
  9. #include "runmodel.h"

  10. u8 motor_mode = 0;               //電機(jī)運(yùn)動模式
  11. u8 send_flag = 0;

  12. int main(void)
  13. {        
  14.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                         //中斷控制器分組設(shè)置
  15.                 Key_Init();                                                                                                            //初始化按鍵
  16.                 EXTI_Configuration();
  17.                 Usart1_Init(115200);                                                                   //設(shè)置串口1的波特率為115200bit
  18.                 LedInit();                                                                                                    //初始化led
  19.                 Delay_Init();                                                                                                 //初始化延遲函數(shù)
  20.                 BlueTooth_Init();                                                                                //初始化藍(lán)牙模塊
  21.                 USART_Cmd(USART1, ENABLE);                                                                                                         //除能串口
  22.                 GPIO_ResetBits(GPIOB,EN);
  23.                 Motor_Init();                                                                                                                                                                //舵機(jī)初始化
  24.                 Lo_Signal;
  25.                 while(1)
  26.                 {
  27.                         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) == Bit_RESET)
  28.                         {
  29.                                 DelayMs(100);
  30.                                 if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) == Bit_RESET)
  31.                                 {
  32.                                         send_flag++;
  33.                                         if(send_flag == 2)
  34.                                                 send_flag = 0;
  35.                                         if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2) == Bit_RESET)
  36.                                                 GPIO_SetBits(GPIOA,GPIO_Pin_2);        
  37.                                         else
  38.                                                 GPIO_ResetBits(GPIOA,GPIO_Pin_2);        
  39.                                        
  40.                                         if(send_flag == 1)
  41.                                         {
  42.                                                 Motor_Mode(Reverse_45);
  43.                                         }
  44.                                        
  45.                                         if(send_flag == 0)
  46.                                         {
  47.                                                 Motor_Mode(Forward_45);
  48.                                         }
  49.                                 }
  50.                         }
  51.                         
  52.                 }
  53. }

復(fù)制代碼

全部資料51hei下載地址(PCB+代碼):
基于stm32的馬達(dá)開關(guān).7z (2.62 MB, 下載次數(shù): 150)

評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:700612 發(fā)表于 2020-3-7 22:54 | 顯示全部樓層
不錯
回復(fù)

使用道具 舉報

ID:1108276 發(fā)表于 2024-1-6 12:55 | 顯示全部樓層
好的厲害,不錯
回復(fù)

使用道具 舉報

ID:927615 發(fā)表于 2024-7-12 21:06 來自手機(jī) | 顯示全部樓層
藍(lán)牙用什么型號
回復(fù)

使用道具 舉報

ID:430492 發(fā)表于 2024-7-13 14:21 | 顯示全部樓層
包里好象沒有藍(lán)牙APP
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表