|
本設(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附件中可下載工程文件)
原理圖:
PCB:
實物:
操作方式:
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ù)代碼:
- //本設(shè)計利用信馳達(dá)進(jìn)行藍(lán)牙通信,通過串口1控制電動馬達(dá)的轉(zhuǎn)動,stm32的PB1控制藍(lán)牙模塊的使能,藍(lán)牙模塊的工作電壓范圍在1.8-3.3V,具有低功耗
- //2019年10月22號21點44分,作者Vence
- #include "stm32f10x.h"
- #include "usart1.h"
- #include "bluetooth.h"
- #include "key.h"
- #include "led.h"
- #include "motor.h"
- #include "runmodel.h"
- u8 motor_mode = 0; //電機(jī)運(yùn)動模式
- u8 send_flag = 0;
- int main(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷控制器分組設(shè)置
- Key_Init(); //初始化按鍵
- EXTI_Configuration();
- Usart1_Init(115200); //設(shè)置串口1的波特率為115200bit
- LedInit(); //初始化led
- Delay_Init(); //初始化延遲函數(shù)
- BlueTooth_Init(); //初始化藍(lán)牙模塊
- USART_Cmd(USART1, ENABLE); //除能串口
- GPIO_ResetBits(GPIOB,EN);
- Motor_Init(); //舵機(jī)初始化
- Lo_Signal;
- while(1)
- {
- if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) == Bit_RESET)
- {
- DelayMs(100);
- if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) == Bit_RESET)
- {
- send_flag++;
- if(send_flag == 2)
- send_flag = 0;
- if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2) == Bit_RESET)
- GPIO_SetBits(GPIOA,GPIO_Pin_2);
- else
- GPIO_ResetBits(GPIOA,GPIO_Pin_2);
-
- if(send_flag == 1)
- {
- Motor_Mode(Reverse_45);
- }
-
- if(send_flag == 0)
- {
- Motor_Mode(Forward_45);
- }
- }
- }
-
- }
- }
復(fù)制代碼
全部資料51hei下載地址(PCB+代碼):
基于stm32的馬達(dá)開關(guān).7z
(2.62 MB, 下載次數(shù): 150)
2019-11-9 14:43 上傳
點擊文件名下載附件
|
評分
-
查看全部評分
|