女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【CW32模塊使用】SG90舵機(jī)

CW32生態(tài)社區(qū) ? 來(lái)源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2025-03-29 17:22 ? 次閱讀

一、模塊來(lái)源

模塊實(shí)物展示:

wKgZPGflMhmAMzFXAAAm8olbBn8586.jpg


資料鏈接:https://pan.baidu.com/s/1QsTIKnoQsOTCkeYLLTTjTA?pwd=8889
資料提取碼:8889

二、規(guī)格參數(shù)

驅(qū)動(dòng)電壓:3V~7.2V

工作扭矩:1.6KG/CM

控制方式:PWM

轉(zhuǎn)動(dòng)角度:180度

以上信息見(jiàn)廠家資料文件

三、移植過(guò)程

我們的目標(biāo)是將例程移植至CW32F030C8T6開(kāi)發(fā)板上【能夠控制舵機(jī)旋轉(zhuǎn)的功能】。首先要獲取資料,查看數(shù)據(jù)手冊(cè)應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1查看資料

在購(gòu)買時(shí),需要分清楚你的舵機(jī)可以轉(zhuǎn)180度,還是360度。360度的舵機(jī)是無(wú)法控制角度的,只可以控制旋轉(zhuǎn)速度。

wKgZO2flMhmAObn9AABtdiwZJ4A053.jpg

180度舵機(jī)

wKgZPGflMhqAGXw0AACKWilGLgU545.jpg

360度舵機(jī)

SG90的舵機(jī)轉(zhuǎn)速不是很快,一般為0.22/60 度或0.18/60 度,所以假如你更改角度控制脈沖的寬度太快時(shí),舵機(jī)可能反應(yīng)不過(guò)來(lái)。如果需要更快速的反應(yīng),就需要更高的轉(zhuǎn)速了。

3.2引腳選擇

wKgZO2flMhqAdkh-AAAfRAr6tyc945.jpg

wKgZPGflMhuAYN0NAAAjyjValJ8437.jpg

wKgZO2flMhuAEImOAADVONzoL3Y607.jpg

模塊接線圖

3.3移植至工程

移植步驟中的導(dǎo)入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_sg90.c與bsp_sg90.h。這里不再過(guò)多講述,移植完成后面修改相關(guān)代碼。

在文件bsp_sg90.c中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-25     LCKFB-LP    first version
 */
#include "bsp_sg90.h"

unsigned int Servo_Angle = 0;//舵機(jī)角度

/******************************************************************
 * 函 數(shù) 名 稱:SG90_Init
 * 函 數(shù) 說(shuō) 明:PWM配置
 * 函 數(shù) 形 參:pre定時(shí)器時(shí)鐘預(yù)分頻值    per周期
 * 函 數(shù) 返 回:無(wú)
 * 作       者:LC
 * 備       注:

配置占空比 范圍 0 ~ (per-1)
//    t = 0.5ms——————-舵機(jī)會(huì)轉(zhuǎn)動(dòng) 0 °
//    t = 1.0ms——————-舵機(jī)會(huì)轉(zhuǎn)動(dòng) 45°
//    t = 1.5ms——————-舵機(jī)會(huì)轉(zhuǎn)動(dòng) 90°
//    t = 2.0ms——————-舵機(jī)會(huì)轉(zhuǎn)動(dòng) 135°
//    t = 2.5ms——————-舵機(jī)會(huì)轉(zhuǎn)動(dòng)180°
//    1.我該如何計(jì)算括號(hào)里的數(shù),從而實(shí)現(xiàn)我想要的功能?
//    此處以90度為例。
//    答:PWM周期為20ms,所以占空比就應(yīng)該為1.5ms/20ms = 7.5%,
//    所以 TIMx 捕獲比較 1 寄存器值就為period-period*7.5% = 84-84*7.5%=77.7
******************************************************************/
void SG90_Init(void)
{
    // 啟用 GPIO 和定時(shí)器時(shí)鐘
    RCC_SIG_GPIO_ENABLE();       // 啟用 GPIO 時(shí)鐘
    RCC_SIG_TIMER_ENABLE();      // 啟用定時(shí)器時(shí)鐘

    // 初始化 GPIO
    GPIO_InitTypeDef GPIO_InitStruct;  // GPIO 初始化結(jié)構(gòu)體

    GPIO_InitStruct.Pins = GPIO_SIG;             // GPIO 引腳
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;  // 推挽輸出模式
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;     // 高速

    GPIO_AF_SIG_ENABLE();       // 啟用 GPIO 復(fù)用功能

    GPIO_Init(PORT_SIG, &GPIO_InitStruct);    // 初始化 GPIO

    // 初始化定時(shí)器 (GTIM3)
    GTIM_InitTypeDef GTIM_InitStruct;  // 定時(shí)器初始化結(jié)構(gòu)體

    GTIM_InitStruct.Mode = GTIM_MODE_TIME;              // 定時(shí)器模式
    GTIM_InitStruct.OneShotMode = GTIM_COUNT_CONTINUE;  // 連續(xù)計(jì)數(shù)模式
    GTIM_InitStruct.Prescaler = GTIM_PRESCALER_DIV64;   // 預(yù)分頻器 (DCLK = PCLK / 64 = 64 MHz / 64 = 1 MHz)
    GTIM_InitStruct.ReloadValue = 20000 - 1;            // 重裝載值 (20 ms 周期)
    GTIM_InitStruct.ToggleOutState = ENABLE;            // 輸出翻轉(zhuǎn)功能

    GTIM_TimeBaseInit(BSP_SIG_TIMER, >IM_InitStruct);  // 初始化定時(shí)器

    GTIM_OCInit(BSP_SIG_TIMER, BSP_PWM_CHANNEL, GTIM_OC_OUTPUT_PWM_LOW); // 配置輸出比較通道為低電平有效的 PWM 模式

    GTIM_Cmd(BSP_SIG_TIMER, ENABLE);  // 啟用定時(shí)器
}


/******************************************************************
 * 函 數(shù) 名 稱:Set_Servo_Angle
 * 函 數(shù) 說(shuō) 明:設(shè)置角度
 * 函 數(shù) 形 參:angle=要設(shè)置的角度,范圍0-180
 * 函 數(shù) 返 回:無(wú)
 * 作       者:LC
 * 備       注:無(wú)
******************************************************************/
void Set_Servo_Angle(unsigned int angle)
{
    if(angle > 180)
    {
        angle = 180; // 限制角度在0到180度之間
    }

    // 計(jì)算PWM占空比
    // 注意:這里的20000是基于GTIM_Period設(shè)置為20000的
    // 0.5ms對(duì)應(yīng)的計(jì)數(shù) = (0.5 / 20) * 20000
    // 2.5ms對(duì)應(yīng)的計(jì)數(shù) = (2.5 / 20) * 20000
    // 因此,角度從0到180度時(shí),占空比應(yīng)該從0.5ms到2.5ms線性變化
    unsigned int ServoAngle = (unsigned int)((0.5 + (angle / 180.0) * 2.0) / 20.0 * 20000);

    GTIM_SetCompare1(BSP_SIG_TIMER, ServoAngle);
}


/******************************************************************
 * 函 數(shù) 名 稱:讀取當(dāng)前角度
 * 函 數(shù) 說(shuō) 明:Get_Servo_Angle
 * 函 數(shù) 形 參:無(wú)
 * 函 數(shù) 返 回:當(dāng)前角度
 * 作       者:LC
 * 備       注:使用前必須確保之前使用過(guò)
                void Set_Servo_Angle(unsigned int angle)
                函數(shù)設(shè)置過(guò)角度
******************************************************************/
unsigned int Get_Servo_Angle(void)
{
        return Servo_Angle;
}

在文件bsp_sg90.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-25     LCKFB-LP    first version
 */

#ifndef _BSP_SG90_H
#define _BSP_SG90_H

#include "board.h"

#define RCC_SIG_GPIO_ENABLE()       __RCC_GPIOA_CLK_ENABLE()

#define PORT_SIG                    CW_GPIOA

#define GPIO_SIG                    GPIO_PIN_6

#define GPIO_AF_SIG_ENABLE()        PA06_AFx_GTIM3CH1()

#define RCC_SIG_TIMER_ENABLE()      __RCC_GTIM3_CLK_ENABLE()
#define BSP_SIG_TIMER               CW_GTIM3  // 定時(shí)器
#define BSP_PWM_CHANNEL             GTIM_CHANNEL1



void SG90_Init(void);
void Set_Servo_Angle(unsigned int angle);
unsigned int Get_Servo_Angle(void);
void TIM3_PWM_Init_AllChannel(void);

#endif

四、移植驗(yàn)證

在自己工程中的main主函數(shù)中,編寫如下。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-25     LCKFB-LP    first version
 */
#include "board.h"
#include "stdio.h"
#include "bsp_uart.h"
#include "bsp_sg90.h"

int32_t main(void)
{
    int i = 0;

    board_init();

    uart1_init(115200U);

    SG90_Init();
    Set_Servo_Angle(180);
    delay_ms(1000);
    Set_Servo_Angle(0);
    delay_ms(1000);

    while(1)
    {

        Set_Servo_Angle(i++);
        if( i >= 180 )
        {
            i = 0;
        }

        delay_ms(10);
    }
}

移植現(xiàn)象:舵機(jī)從0度轉(zhuǎn)到180度后,再?gòu)?度重新開(kāi)始轉(zhuǎn)。

wKgZPGflMhuAA30JAABXTT4j_TE066.jpg

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1bWrJCuW5w55yN94rDQfZGQ?pwd=LCKF

提取碼:LCKF

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5530

    瀏覽量

    102348
  • 舵機(jī)
    +關(guān)注

    關(guān)注

    17

    文章

    292

    瀏覽量

    41708
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    242

    瀏覽量

    1099
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    舵機(jī)SG90

    ` 本帖最后由 街甪丶的祝福 于 2017-8-7 16:12 編輯 有沒(méi)有哪位大佬,會(huì)搞SG90,如果有51控制程序或者51改變舵機(jī)方向的程序,能否發(fā)一個(gè)給我,謝謝!!!這種舵機(jī),沒(méi)有人搞過(guò)嗎?`
    發(fā)表于 08-07 10:55

    有關(guān)SG90伺服電機(jī)(舵機(jī))的基礎(chǔ)知識(shí)匯總

    什么是SG90伺服電機(jī)(舵機(jī))?SG90伺服電機(jī)(舵機(jī))的硬件包括哪些部分?
    發(fā)表于 06-28 07:32

    如何利用51單片機(jī)去控制SG90舵機(jī)

    SG90舵機(jī)是如何進(jìn)行接線的?SG90舵機(jī)旋轉(zhuǎn)的角度有哪幾種?如何利用51單片機(jī)去控制SG90舵機(jī)
    發(fā)表于 07-29 07:50

    控制舵機(jī)SG90的教程

    目錄前言一、SG90舵機(jī)二、CubeMax配置1.選型2.配置時(shí)鐘樹(shù)3.PWM相關(guān)定時(shí)器配置4.生成代碼三、代碼編寫總結(jié)前言這是一篇基于STM32F429的保姆級(jí)入門的用CubeMAX配置生成并編寫
    發(fā)表于 08-10 06:05

    SG90馬達(dá)使用介紹

    介紹SG90 是基礎(chǔ)使用廣泛,分90度版、180度版、360度版,除了旋轉(zhuǎn)角度不同,其他都一樣,MG90S相當(dāng)于SG90的金屬齒加強(qiáng)版,安裝尺寸和S
    發(fā)表于 09-13 07:34

    如何使用STM32來(lái)驅(qū)動(dòng)SG90舵機(jī)

    如何使用STM32來(lái)驅(qū)動(dòng)SG90舵機(jī)
    發(fā)表于 11-26 07:17

    SG90舵機(jī)+超聲波簡(jiǎn)介

    +超聲波模塊,這個(gè)舵機(jī)SG90模擬舵機(jī),網(wǎng)上有很多的資料模擬電機(jī)與數(shù)字電機(jī)的區(qū)別SG90的驅(qū)動(dòng)是靠不同占空比的50hz的PWM波來(lái)控制0度
    發(fā)表于 01-05 06:09

    SG90舵機(jī)的相關(guān)資料推薦

    【基于STM32】Stduino拓展學(xué)習(xí)(二)SG90舵機(jī)本文轉(zhuǎn)載自:http://www.stduino.com/forum.php?mod=viewthread&tid=64&
    發(fā)表于 01-17 08:12

    STM32驅(qū)動(dòng)SG90舵機(jī)的方法

    1. 材料介紹STM32F103VET6開(kāi)發(fā)板,此處我使用的是野火的指南者,不過(guò)F103系列的應(yīng)該都是可以通用的,具體大家可以自行參考相對(duì)應(yīng)開(kāi)發(fā)板的用戶手冊(cè)。SG90舵機(jī)一個(gè)。我使用的是180°旋轉(zhuǎn)
    發(fā)表于 02-21 06:54

    STM32控制SG90舵機(jī)的方法步驟

    STM32控制SG90舵機(jī) 在這篇博客中,我講解的是SG90的180°型號(hào)的舵機(jī)。其它型號(hào)的舵機(jī)也可以參考。首先,
    發(fā)表于 02-21 07:21

    如何使用STM32來(lái)驅(qū)動(dòng)SG90舵機(jī)

    如何使用STM32來(lái)驅(qū)動(dòng)SG90舵機(jī)
    發(fā)表于 02-28 07:14

    微雪電子SG90舵機(jī)簡(jiǎn)介

    SG90舵機(jī) 機(jī)器車 航模 機(jī)械手臂配件 轉(zhuǎn)動(dòng)角度:180°、產(chǎn)品扭矩:2.0kg/cm(4.8V),2.2kg/cm(6V) 型號(hào) SG90 Servo
    的頭像 發(fā)表于 12-30 10:36 ?3.1w次閱讀
    微雪電子<b class='flag-5'>SG90</b><b class='flag-5'>舵機(jī)</b>簡(jiǎn)介

    STM32驅(qū)動(dòng)SG90舵機(jī)

    1. 材料介紹STM32F103VET6開(kāi)發(fā)板,此處我使用的是野火的指南者,不過(guò)F103系列的應(yīng)該都是可以通用的,具體大家可以自行參考相對(duì)應(yīng)開(kāi)發(fā)板的用戶手冊(cè)。SG90舵機(jī)一個(gè)。我使用的是180°旋轉(zhuǎn)
    發(fā)表于 12-24 19:24 ?50次下載
    STM32驅(qū)動(dòng)<b class='flag-5'>SG90</b><b class='flag-5'>舵機(jī)</b>

    pwm控制SG90舵機(jī)資料分享

    pwm控制SG90舵機(jī)資料分享
    發(fā)表于 07-10 09:22 ?42次下載

    RK3568開(kāi)發(fā)板SG90 舵機(jī)模塊的功能實(shí)現(xiàn)

    RK3568開(kāi)發(fā)板SG90 舵機(jī)模塊的功能實(shí)現(xiàn)-迅為電子
    的頭像 發(fā)表于 09-20 14:29 ?1118次閱讀
    RK3568開(kāi)發(fā)板<b class='flag-5'>SG90</b> <b class='flag-5'>舵機(jī)</b><b class='flag-5'>模塊</b>的功能實(shí)現(xiàn)