|
STM32驅(qū)動(dòng)舵機(jī)實(shí)現(xiàn)功能:按下編碼器按鈕,角度增加45°,正轉(zhuǎn)編碼器,角度加一,反轉(zhuǎn)編碼器,角度減一。
out3.gif (7.84 MB, 下載次數(shù): 40)
下載附件
2023-1-6 22:42 上傳
舵機(jī)介紹:如圖,這種藍(lán)色舵機(jī)有三根引線,紅色為+5v 棕色為GND 橙色為信號(hào)線
舵機(jī).jpg (809.47 KB, 下載次數(shù): 41)
下載附件
舵機(jī)
2023-1-6 22:17 上傳
這種舵機(jī)為模擬舵機(jī),采用pwm信號(hào)驅(qū)動(dòng),根據(jù)不同的占空比,舵機(jī)可以輸出不同的角度,具體的對(duì)應(yīng)關(guān)系如下圖所示:
舵機(jī)旋轉(zhuǎn)角度和脈沖寬度關(guān)系圖.png (37.44 KB, 下載次數(shù): 42)
下載附件
舵機(jī)驅(qū)動(dòng)信號(hào)
2023-1-6 22:15 上傳
主函數(shù):
#include "stm32f10x.h" // Device header
#include "OLED.h"
#include "EncoderAndServo.h"
#include "Delay.h"
int main()
{
int32_t i ;
uint16_t Angle,KeyNum=0;
OLED_Init();
EncoderAndServo_Init();
OLED_DisplayString(1,1,"Angle:");
while(1)
{
i+=Return_Num();//獲取編碼器返回值
if(Return_KeyNum())//判斷編碼器按鍵是否按下
{
i+=50;
}
if(i>250)i=50;
if(i<50)i=50;
Angle=i;
TIM3_SetCompare((uint16_t)i);//將i傳遞給捕獲比較寄存器
OLED_DisplayNum(1,7,(uint16_t)((((float)Angle-50.0)/200.0)*180.0),3);//角度顯示
}
}
代碼部分:
- <blockquote>#include "stm32f10x.h" // Device header
復(fù)制代碼
|
-
-
28-編碼器控制舵機(jī).7z
2023-1-6 22:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
214.69 KB, 下載次數(shù): 39, 下載積分: 黑幣 -5
|