最新消息:

Arduino库教程-Stepper-Stepper One Revolution

Arduino 少儿编程 2973浏览 0评论
Arduino库教程

Stepper One Revolution

  • 步进电机,由于其独特的设计,可以没有任何反馈机制而控制到一个高度的准确性。一个步进电机的轴,安装有一系列的磁铁,是由一系列的电磁线圈控制,这些线圈按一个特定的序列排列正负极,尤其是向前或向后移动一小“步”。

  • 有两种类型的步进电机,单极型和双极型晶体管,而且知道你正在使用哪种类型是非常重要的。每种电机,都有一个不同的电路。示例代码将控制两种电机。看看单极性和双极性电机的原理图,和关于如何连接你的电机的信息。

  • 在这个例子中,轴是一个完整的旋转顺时针旋转,通过Arduino Stepper 库来控制步进电机的步进数目。无论是单极或双极电机,均由数字引脚8,9,10,和11控制步进。

  • 如果你正在使用一个单极型步进电机,Arduino或genuino开发板将会连接到一个U2004达林顿管阵列。或者连接到SN754410NE H-桥,如果你有一个双极电机。

  • 更多关于这两种类型的差异的信息,请看Tom Igoe’s page on stepper motors。

硬件要求

  • Arduino or Genuino Board
  • 10k ohm 电位器
  • 步进电机
  • U2004 达林顿管阵列 (如果用单极型电机)
  • SN754410ne H-桥 (如果用双极型电机)
  • 合适的为你的步进电机供电的电源
  • 连接线
  • 面包板

电路

  • 下面你会发现电路为单极性和双极性步进电机。在任何一种情况下,最好是你的步进电机从外部供电,因为直接从你的Arduino电路板供电,他们会汲取太多能量。

  • 在这两种电路里,连接一个10K的电位器到电源和接地,而它的wipper输出到模拟引脚A0。

  • 注意:下面的两个电路都是四线配置。两条线配置将不会与提供的代码一起工作。

  • 单极型步进电路和原理图
    Arduino库教程-Stepper-Stepper One Revolution
    Arduino库教程-Stepper-Stepper One Revolution

  • 双极型步进电路和原理图
    Arduino库教程-Stepper-Stepper One Revolution
    Arduino库教程-Stepper-Stepper One Revolution

样例代码
对单极型和双极型步进机

/*
 Stepper Motor Control - one revolution

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.

 The motor should revolve one revolution in one direction, then
 one revolution in the other direction.


 Created 11 Mar. 2007
 Modified 30 Nov. 2009
 by Tom Igoe

 */

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(60);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

[Get Code]
更多

  • Stepper myStepper = Stepper(steps, pin1, pin2, pin3, pin4)
  • stepper.setSpeed()
  • stepper.step()
  • Stepper library reference
  • Motor Knob: 使用一个电位器控制一个高度精确的步进电机。
  • StepperOneRevolution – 顺时针旋转一圈,逆时针旋转一圈。
  • StepperOneStepAtATime – 一步一步转动轴来检查电机是否正确接线。
  • StepperSpeedControl – 用电位器控制步进速度。

您必须 登录 才能发表评论!