arduino控制步进电机和舵机

/使用arduino IDE自带的Stepper.h库文件
#include <Stepper.h>
// 这里设置步进电机旋转一圈是多少步
#define STEPS 100

//设置步进电机的步数和引脚(就是注意点2里面说的驱动板上IN1~IN4连接的四个数字口)。
Stepper stepper(STEPS, 8, 9, 10, 11);
void setup()
{
  // 设置电机的转速:每分钟为90步
  stepper.setSpeed(180);
  // 初始化串口,用于调试输出信息
  Serial.begin(9600);
}

void loop()

{
    // 顺时针旋转一周
    Serial.println("shun");
    stepper.step(2048); //4步模式下旋转一周用2048 步。
    delay(500);
    // 逆时针旋转半周
    Serial.println("ni");
    stepper.step(-1024); //4步模式下旋转一周用2048 步。
    delay(500);
}

步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启 动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望9的高频(电机转速从低速升到高速)。

#include <Servo.h>    // 声明调用Servo.h库
Servo myservo;        // 创建一个舵机对象
int pos = 0;          // 变量pos用来存储舵机位置
void setup() {
    myservo.attach(9);  // 将引脚9上的舵机与声明的舵机对象连接起来
}
void loop() {
   for(pos = 0; pos < 180; pos += 1){    // 舵机从0°转到180°,每次增加1°         
      myservo.write(pos);           // 给舵机写入角度  
      delay(15);                    // 延时15ms让舵机转到指定位置
   }
    for(pos = 180; pos>=1; pos-=1) {    // 舵机从180°转回到0°,每次减小1°                              
       myservo.write(pos);        // 写角度到舵机    
       delay(15);                 // 延时15ms让舵机转到指定位置
    }
}



发布了13 篇原创文章 · 获赞 5 · 访问量 1008

猜你喜欢

转载自blog.csdn.net/weixin_44868057/article/details/104977770