不会写代码的波 2024-01-19 21:43 采纳率: 0%
浏览 140

舵机sg90用电池单独供电不转

各位佬我想问一下,在stm32板子上并且有电脑插着usb烧录器供电,舵机就可以用,但是用5v的电源给舵机单独供电,把电脑的usb拔下来舵机就不能用是为啥,那个5v的电源还连着电机,电机就可以转,但是舵机就不动,求

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-20 08:12
    关注

    【以下回答由 GPT 生成】

    问题分析: 造成舵机无法工作的原因可能有以下几个方面: 1. 供电电压不稳定或电流不足导致舵机无法正常工作。 2. 舵机和电机的电源共地导致电流回路干扰。

    解决方案: 1. 确定供电电压和电流是否满足舵机的要求。舵机SG90的工作电压为4.8-6V,工作电流一般在150-250mA。测量供电电压和电流是否在这个范围内,可以使用电压表和电流表等仪器进行测量。如果电压或电流不足,可以尝试更换更适合的电池或增加电池的数量。

    1. 使用舵机专用的电源供电模块。这样可以保证稳定的供电电压和电流。舵机专用的电源供电模块会对电源进行滤波和稳压处理,可以提供稳定的电压和电流给舵机。

    2. 隔离舵机和电机的电源。将舵机和电机的电源分开,不共地。这样可以避免电流回路的干扰。可以使用独立的电池供电给舵机,或者使用电源隔离器隔离电路。

    下面是示例代码,演示如何使用stm32控制舵机sg90:

    #include "stm32f4xx.h"
    
    void Delay(uint32_t time)
    {
        while(time--);
    }
    
    int main(void)
    {
        // 初始化GPIO
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
    
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
    
        while(1)
        {
            // 控制舵机
            GPIO_SetBits(GPIOA, GPIO_Pin_0);   // 设定舵机为正转方向
            Delay(1000000);                     // 延时一段时间,等待舵机转动
            GPIO_ResetBits(GPIOA, GPIO_Pin_0); // 设定舵机为停止状态
            Delay(1000000);                     // 延时一段时间,等待舵机停止
        }
    }
    

    请注意,这只是一个示例代码,实际使用时需要根据具体的stm32型号和舵机连接的引脚进行相应的修改。在编写代码前,建议参考stm32的官方文档、参考手册和舵机的数据手册,了解舵机控制的具体细节和接口定义,确保代码的正确性。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 1月19日
  • 创建了问题 1月19日