whx456123 2023-02-13 00:53 采纳率: 100%
浏览 216
已结题

51单片机驱动不了sg90舵机

我是在用51单片机最小系统板做智能小车,用L298N驱动模块输入12v后再通过L298N的5v输出经过稳压给单片机供电。然后通过这样的供电方式使用舵机的时候,舵机有很明显的响声,但是舵机没有转动。请问各位这是什么原因?
代码如下:

#include <REGX52.H>
#include <intrins.h>
#include "delay.h"

sbit PWM = P3^5;


unsigned char counter;
unsigned char angle;

void Timer1_Init()        //500微秒@11.0592MHz
{
    TMOD &= 0x0F;            //设置定时器模式
    TMOD |= 0x10;            //设置定时器模式
    TL1 = 0x33;                //设置定时初始值
    TH1 = 0xFE;                //设置定时初始值
    TF1 = 0;                //清除TF1标志
    TR1 = 1;                //定时器1开始计时
    ET1 = 1;                //使能定时器1中断
    EA = 1;         //打开总中断
    PT1 = 1;         //设置优先级
}

void control()
{
    counter = 2;       //右转
    angle = 1;           
    Delay1ms(1000);
    
    counter = ;       //左转
    angle = 4Delay1ms(1000);
    
    counter = 3;      //归中
    angle = ;           
    Delay1ms(1500);
    
}

void Timer1_Isr() interrupt 3
{
    TL1 = 0x33;                //设置定时初始值
    TH1 = 0xFE;                //设置定时初始值
    counter++;
    if(counter == 40)
    {
        counter = 0;
    }
    if(counter <= angle)
    {
        PWM = 1;
    }
    else
    {
        PWM = 0;
    }
    TR1 = 1;
}

  • 写回答

11条回答 默认 最新

  • 星 沅 2023-02-13 10:22
    关注

    可以确认一下你的代码实现了PWM输出,是否可以驱动你的舵机。此外,还需要确保舵机的供电电压、电流都满足要求。可以根据舵机的数据手册,检查您的驱动模块是否正常工作。

    此外,还有一些细节:

    在代码中,P3.5被用作PWM输出,确保该引脚是51单片机的可用输出引脚。
    定时器1的初始值需要根据实际情况调整。
    在control函数中,角度变量angle的初始值是否与舵机的要求一致。
    control函数中的Delay1ms延时是否合适。
    还有:
    这个问题可能是由于舵机不能得到足够的电流供应造成的。可以尝试通过更换驱动模块,或增加电流供应的方式来解决这个问题。此外,还可以检查舵机的连接是否正确,确保舵机的控制信号被正确地发送到驱动模块。

    另外,你的代码中存在一些错误,请检查代码,以确保所有的变量都有正确的值,以免对舵机控制造成影响。比如,在 control 函数中, angle 变量没有正确地初始化
    如果以上所有因素都没有问题,那么你的代码应该可以正常驱动舵机。如果问题仍然存在,请提供更多信息

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

问题事件

  • 系统已结题 2月21日
  • 已采纳回答 2月13日
  • 修改了问题 2月13日
  • 创建了问题 2月13日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来