急求51单片机控制舵机C语言程序,舵机可以根据设定旋转任意角度!急求啊,大神帮帮忙!非常感谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求51单片机控制舵机C语言程序,舵机可以根据设定旋转任意角度!急求啊,大神帮帮忙!非常感谢!相关的知识,希望对你有一定的参考价值。

#include<reg52.h>typedef unsigned int uint;typedef unsigned char uchar;sbit pwm=P0^3;//输出PWM信号uchar count=0;uint pwm_value=1500;//初值为1.5msuint value[]=1500,1000,1500,2000,1500;//void delay_ms(uint x)uint i;while(x--)for(i=0;i<125;i++);void InitTimer(void)TMOD=0x11;//开定时器0,1TH0=-20000/256;//定时20MS,20MS为一个周期TL0=-20000%256;TH1=-1500/256;//定时1.5MS,这时舵机处于0度TL1=-1500%256;EA=1;//开总断TR0=1;//开定时器0ET0=1;TR1=1;//开定时器1ET1=1;void timer0(void) interrupt 1//定时器0中断函数pwm=1;TH0=-20000/256;TL0=-20000%256;TR1=1;count++;void timer1(void) interrupt 3//定时器1中断函数pwm=0;TH1=-pwm_value/256;TL1=-pwm_value%256;TR1=0;void main(void)//主函数uchar i;InitTimer();pwm_value=1500;while(1)for(i=0;i<5;i++)pwm_value=value[i];//通过数组就可以改变舵机的转角度delay_ms(1000); 参考技术A 网上一搜一大堆

Arduino-舵机控制Servo

以前没有接触过硬件,因为把弄APM2.5不得不去接触arduino板。Arduino是块极易上手的控板,不像单片机,你要花费大量的时间去学习预备知识,它只要你稍微懂点C语言既能上手。对于我这种业余爱好者,不二之选。手头有几个舵机,首次接触arduino就是用它来操作舵机。Arduino有个底层库(Servo类),包含驱动舵机的基本功能:

attach()//连接舵机
write()//角度控制
writeMicroseconds()//参数为pwm值,1000:逆时针旋转180度,1500:到达中点,2000:顺时针旋转180度
read()//读上一次舵机转动角度
attached()//
detach()//断开舵机连接

 

实例:
器材:arduino板、舵机、杜邦线若干 
程序可以在IDE>File>Examples>Servo>Sweep中找到
这里介绍不调用Servo库,写的Servo.write()函数,有些问题,串口输入的值与伺服转动的角度不相同。郁闷中!!!
int value;
int pulsewidth;
int pin=9;
void servowrite(int pin,int value)
{
  digitalWrite(pin,HIGH);
  value=map(value,0,180,700,2300);//舵机的PWM值在700~2300间,这是粗略的PWM数值转换
  digitalWrite(pin,LOW);
}
void setup()
{
 Serial.begin(9600);
 pinMode(pin,OUTPUT);
}
void loop()
{
  if(Serial.available()>0)
  {
    int val=Serial.read();
    value=val-0;//转换为数字
    value=map(value,0,9,0,180);
    Serial.print("moving servo to");
    Serial.print(value);
    servowrite(pin,value);
   }
    
}

 

以上是关于急求51单片机控制舵机C语言程序,舵机可以根据设定旋转任意角度!急求啊,大神帮帮忙!非常感谢!的主要内容,如果未能解决你的问题,请参考以下文章

51单片机控制舵机转角的C语言程序

求问单片机控制舵机连续来回转动而不停下来的C程序怎么写

这个单片机控制舵机的程序 舵机会抖动 哪位大侠帮我改一下c程序?

求舵机自动正反转的c程序

舵机及转向控制

51单片机PWM双舵机控制详解