安泰电子世界网 首页 Ardunio arduino驱动舵机,不调用库函数

arduino驱动舵机,不调用库函数

2024-11-5 16:04 | 发布者: txc | 查看: 18 | 评论: 0

简介:arduino驱动舵机,不调用库函数
  1. int sp1=10;//定义舵机接口数字接口7
  2. int pulsewidth;//定义脉宽变量
  3. int val;
  4. int val1;
  5. int myangle1;
  6. //下面是servopulse函数部分(此函数意思:也就是說每次都是0.5ms高電平 1.98ms低電平 然後再0.52ms低電平 17ms延時也是低電平)

  7. void servopulse(int sp1,int val1)//定义一个脉冲函数
  8. {
  9.   myangle1=map(val1,0,180,500,2480);
  10.   digitalWrite(sp1,HIGH);//将舵机接口电平至高
  11.   delayMicroseconds(myangle1);//延时脉宽值的微秒数
  12.   digitalWrite(sp1,LOW);//将舵机接口电平至低
  13.   delay(20-val1/1000);
  14. }
  15. //servopulse函数部分到此结束
  16. void setup()
  17. {
  18.   pinMode(sp1,OUTPUT);//设定舵机接口为输出接口
  19.   //设置两组串口波特率
  20.   Serial.begin(9600);
  21.   delay(500);
  22.   Serial.println("servu=o_seral_simple ready" ) ;
  23. }

  24. void loop()//将0到9的数转化为0到180角度,并让LED闪烁相应数的次数
  25. {
  26.   val=Serial.read();//读取串行端口的值

  27.   if(val>'0'&&val<='9')
  28.   {
  29.     val1=val-'0';//将特征量转化为数值变量
  30.     val1=map(val1,0,9,0,180);//将角度转化为500-2480的脉宽值
  31.     Serial.print("moving servo to ");
  32.     Serial.print(val1,DEC);
  33.     Serial.println();
  34.     for(int i=0;i<=50;i++)//给予舵机足够的时间让它转到指定角度
  35.     {
  36.       servopulse(sp1,val1);//引用脉冲函数
  37.     }
  38.   }

  39. }

最新评论

友情链接:

返回顶部