資源簡介
Arduino 自帶的第三方庫,用于步進電機運行用。并支持兩相和四相兩種類型的步進電機。
代碼片段和文件信息
/*
??Stepper.cpp?-?-?Stepper?library?for?Wiring/Arduino?-?Version?0.4
??
??Original?library?????(0.1)?by?Tom?Igoe.
??Two-wire?modifications???(0.2)?by?Sebastian?Gassner
??Combination?version???(0.3)?by?Tom?Igoe?and?David?Mellis
??Bug?fix?for?four-wire???(0.4)?by?Tom?Igoe?bug?fix?from?Noah?Shibley??
??Drives?a?unipolar?or?bipolar?stepper?motor?using??2?wires?or?4?wires
??When?wiring?multiple?stepper?motors?to?a?microcontroller
??you?quickly?run?out?of?output?pins?with?each?motor?requiring?4?connections.?
??By?making?use?of?the?fact?that?at?any?time?two?of?the?four?motor
??coils?are?the?inverse??of?the?other?two?the?number?of
??control?connections?can?be?reduced?from?4?to?2.?
??A?slightly?modified?circuit?around?a?Darlington?transistor?array?or?an?L293?H-bridge
??connects?to?only?2?microcontroler?pins?inverts?the?signals?received
??and?delivers?the?4?(2?plus?2?inverted?ones)?output?signals?required
??for?driving?a?stepper?motor.
??The?sequence?of?control?signals?for?4?control?wires?is?as?follows:
??Step?C0?C1?C2?C3
?????1??1??0??1??0
?????2??0??1??1??0
?????3??0??1??0??1
?????4??1??0??0??1
??The?sequence?of?controls?signals?for?2?control?wires?is?as?follows
??(columns?C1?and?C2?from?above):
??Step?C0?C1
?????1??0??1
?????2??1??1
?????3??1??0
?????4??0??0
??The?circuits?can?be?found?at?
?
http://www.arduino.cc/en/Tutorial/Stepper
?
?
?*/
#include?“Arduino.h“
#include?“Stepper.h“
/*
?*?two-wire?constructor.
?*?Sets?which?wires?should?control?the?motor.
?*/
Stepper::Stepper(int?number_of_steps?int?motor_pin_1?int?motor_pin_2)
{
??this->step_number?=?0;??????//?which?step?the?motor?is?on
??this->speed?=?0;????????//?the?motor?speed?in?revolutions?per?minute
??this->direction?=?0;??????//?motor?direction
??this->last_step_time?=?0;????//?time?stamp?in?ms?of?the?last?step?taken
??this->number_of_steps?=?number_of_steps;????//?total?number?of?steps?for?this?motor
??
??//?Arduino?pins?for?the?motor?control?connection:
??this->motor_pin_1?=?motor_pin_1;
??this->motor_pin_2?=?motor_pin_2;
??//?setup?the?pins?on?the?microcontroller:
??pinMode(this->motor_pin_1?OUTPUT);
??pinMode(this->motor_pin_2?OUTPUT);
??
??//?When?there?are?only?2?pins?set?the?other?two?to?0:
??this->motor_pin_3?=?0;
??this->motor_pin_4?=?0;
??
??//?pin_count?is?used?by?the?stepMotor()?method:
??this->pin_count?=?2;
}
/*
?*???constructor?for?four-pin?version
?*???Sets?which?wires?should?control?the?motor.
?*/
Stepper::Stepper(int?number_of_steps?int?motor_pin_1?int?motor_pin_2?int?motor_pin_3?int?motor_pin_4)
{
??this->step_number?=?0;??????//?which?step?the?motor?is?on
??this->speed?=?0;????????//?the?motor?speed?in?revolutions?per?minute
??this->direction?=?0;??????//?motor?direction
??this->last_step_time?=?0;????//?time?stamp?in?ms?of?the?last?step?taken
??this->number_of_steps?=?number_of_steps;????//?total?number?of?steps?for?this?motor
??
??//?Arduino?pins?for?the?motor?control?connection:
??this->motor_pin_1?=?motor_pin_1;
??this->motor_pin_2?=?mot
- 上一篇:宏芯T108 LCD驅動電路圖
- 下一篇:匯編語言課程設計——————電子時鐘的設計
評論
共有 條評論