• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Arduino舵机信号的源码谁有

STM64 2018-05-23 浏览量:954
想用Arduino控制舵机
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 主要是要通过writeMicroseconds() 设定舵机旋转角度
    要添加Servo.h



    代码教程原理,可以看看:https://www.cnblogs.com/rayray/archive/2013/04/12/3015172.html

    • 发布于 2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • #include <Servo.h>  
      
    #define PIN_SERVO 10  
    Servo myservo;  
      
    void setup()  
    {  
      myservo.attach(PIN_SERVO);  
    }  
      
    void loop()  
    {  
      myservo.write(0);  
      delay(1000);  
      myservo.write(80);  
      delay(1000);  
      myservo.write(160);  
      delay(1000);  
      myservo.write(80);  
      delay(1000);  
      myservo.write(0);  
      delay(1000);  
    }  
    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用Arduino的PWM输出,有个Servo.h的库里面包含一些算法

    参考http://blog.sina.com.cn/s/blog_5e4725590100d3sf.html

    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 舵机信号就是要PWM输入,Arduino开发板通常会有2-4路PWM输出,控制舵机够用。

    • 发布于2018-05-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个程序,在串口输入角度,然后多级就转到那个角度了

    调试很方便

    #include <Servo.h>
    
    Servo myservo;
    
    int last_pos=10;
    
    int char_to_int(char i)
    {
      switch(i)
      {
      case '0':return 0;
      case '1':return 1;
      case '2':return 2;
      case '3':return 3;
      case '4':return 4;
      case '5':return 5;
      case '6':return 6;
      case '7':return 7;
      case '8':return 8;
      case '9':return 9;
      default: return 0;
      }
    }
    
    void setup() {
      // put your setup code here to run once:
      Serial.begin(9600);
      pinMode(23OUTPUT);
      myservo.attach(23);
      myservo.write(last_pos);
      delay(2000);
    }
    
    void loop() {
      // put your main code here to run repeatedly:
      char abc;
      int i;
      while(!Serial.available());//等待数据
      if(Serial.available())
      {
        a=Serial.read();
        delay(3);
      }
      if(Serial.available())
      {
        b=Serial.read();
        delay(3);
      }
      if(Serial.available())
      {
        c=Serial.read();
        delay(3);
      }
      if(b==NULL)
      {
        i=char_to_int(a);
        Serial.println(iDEC);
      }
      
      else if(c==NULL)
      {
        i=char_to_int(a)*10+char_to_int(b);
        Serial.println(iDEC);
      }
      else
      {
        i=char_to_int(a)*100+char_to_int(b)*10+char_to_int(c);
        Serial.println(iDEC);
      }
      if(i>last_pos)
      {
        for(;last_pos<i;last_pos++)
        {
          myservo.write(last_pos);
          delay(10);
        }
        delay(1000);
      }
      else if(i<last_pos)
      {
        for(;last_pos>i;last_pos--)
        {
          myservo.write(last_pos);
          delay(10);
        }
      }
    }

    • 发布于2018-06-21
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Arduino舵机信号的源码谁有