zoukankan      html  css  js  c++  java
  • 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);
       }
        
    }
  • 相关阅读:
    Linux任务调度
    用户管理——用户和用户组
    Linux实用指令
    spring模拟ioc
    浅谈log4j-3-不同输出样式
    浅谈log4j-2
    浅谈log4j
    windows下安装kibana
    【PHP】 解决报错:Error: php71w-common conflicts with php-common-5.4.16-43.el7_4.x86_64
    mysql 8.0设置日期为0000-00-00 00:00:00时报错
  • 原文地址:https://www.cnblogs.com/gaosheng-221/p/6641072.html
Copyright © 2011-2022 走看看