xcccccf 2023-06-14 19:57 采纳率: 88.9%
浏览 86
已结题

270度舵机只转一下就不动了,怎么让舵机转起来

270度舵机只转一下就不动了,怎么让舵机转起来




#include <reg52.h>            //       头文件

sbit Sevro_moto_pwm=P2^0;           // 舵机信号线(橙色)

unsigned char pwm_val  = 0;//变量定义
unsigned char push_val = 14;//舵机归中,产生约,1.5MS 信号
                

void delay1ms(unsigned int k)   //延时1ms函数,k等于多少就延时多少ms
{
    unsigned int a,b,c,d;
    for(d=0;d<k;d++)
        for(c=1;c>0;c--)
            for(b=50;b>0;b--)
                for(a=2;a>0;a--);
}                                   


/**********************************************************************************************
**                              TIMER1中断服务子函数产生PWM信号
**********************************************************************************************/

     void time1()interrupt 3   using 2
{    
     TH1=(65536-100)/256;      //100US定时
     TL1=(65536-100)%256;
     pwm_val++;
     if(pwm_val<=push_val)      
           Sevro_moto_pwm=1;   //PWM信号高电平时间
    else 
           Sevro_moto_pwm=0;   //PWM信号高电平时间
    if(pwm_val>=100)
    pwm_val=0;
 }



/**********************************************************************************************
**                                       主函数
**********************************************************************************************/
void main(void)
{
    TMOD=0X10;
    TH1=(65536-100)/256;      //100US定时
    TL1=(65536-100)%256;
    TR1= 1;
    ET1= 1;
    EA = 1;

    push_val=13;      //舵机归中,机器执行指令有周期,所以PWM信号有误差
    delay1ms(1000);   //延时1S让舵机转到其位置,停留一下

    while(1)               /*无限循环*/
    { 
          push_val=4;      //舵机向正转约90度,机器执行指令有周期,所以PWM信号有误差
          delay1ms(500); //延时500MS让舵机转到其位置

          push_val=22;      //舵机向反转约90度,机器执行指令有周期,所以PWM信号有误差
          delay1ms(500);; //延时500MS让舵机转到其位置
       }

    }   

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-14 22:17
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月14日

悬赏问题

  • ¥15 问题遇到的现象和发生背景 360导航页面千次ip是20元,但是我们是刷量的 超过100ip就不算量了,假量超过100就不算了 这是什么逻辑呢 有没有人能懂的 1000元红包感谢费
  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘