“Microduino-Shield Stepper/zh”的版本间的差异
502748957@qq.com(讨论 | 贡献) (→规格) |
(撤销Hustshenyang@126.com(讨论)的版本12632) |
||
(未显示2个用户的17个中间版本) | |||
第4行: | 第4行: | ||
| | | | ||
[[File:DSC9332.JPG|400px|thumb|right|Microduino-Shield Stepper]] | [[File:DSC9332.JPG|400px|thumb|right|Microduino-Shield Stepper]] | ||
− | Microduino-Shield | + | Microduino-Shield Stepper板子一款带转换器和过流保护的DMOS微步驱动底板,该底板可在全、半、1/4、1/8、1/16步进模式下驱动两相步进电机,能够最多同时操作4路电机。 |
==特色== | ==特色== | ||
− | * | + | 步进电机是一种将脉冲信号变换成相应的角位移(或线位移)的电磁装置,是一种特殊的电机。一般电机都是连续转动的,而步进电机则有定位和运转两种基本状态,当有脉冲输入时步进电机一步一步地转动,每给它一个脉冲信号,它就转过固定的角度。 |
+ | *宽电源输入范围 | ||
+ | *适用两相四线步进电机,最多驱动4路 | ||
+ | *只有简单的步进和方向控制接口,易于控制 | ||
+ | *五种不同的步进模式:全、半、1/4、1/8和1/16 | ||
+ | *可调电位器可以调节最大电流输出,从而获得更高的步进率 | ||
+ | *自动电流衰减模式检测/选择 | ||
+ | *具有过热关闭、欠压锁定、交叉电流保护功能 | ||
*Upin27底座,可结合更多的Microduino模块; | *Upin27底座,可结合更多的Microduino模块; | ||
− | * | + | *底板体积小,46.99mm*40.64mm |
==规格== | ==规格== | ||
− | * | + | *电气 |
− | * | + | **5V稳压:采用ETA1483降压方案,工作电压范围4.5V~18V,最大输出电流2A |
+ | **3.3V稳压:AMS1117稳压方案,最高输出电流可达1A | ||
+ | **输入电压检测,A7引脚可检测输入电源电压 | ||
+ | *电机驱动 | ||
+ | **采用4个A4988SETTR步进电机驱动器,驱动电源取自输入电源,每路最大输出电流可达2A | ||
+ | **驱动器控制引脚说明 | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | |功能||A驱动器||B驱动器||C驱动器||D驱动器 | ||
+ | |- | ||
+ | |ENABLE||D4||D4||D4||D4 | ||
+ | |- | ||
+ | |Step||D5||D6||D7||D8 | ||
+ | |- | ||
+ | |dir ||A0||A1||A2||A3 | ||
+ | |} | ||
+ | **A4988SETTR有三个端口用来设置步进电机微步分辨率,如下表 | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | |MS1||MS2||MS3||微步设置 | ||
+ | |- | ||
+ | |Low||Low||Low||全步进 | ||
+ | |- | ||
+ | |High||Low||Low||半步进 | ||
+ | |- | ||
+ | |Low||High||Low||1/4步进 | ||
+ | |- | ||
+ | |High||High||Low||1/8步进 | ||
+ | |- | ||
+ | |High||High||High||1/16步进 | ||
+ | |} | ||
+ | **步进电机通常有一个固定步长,如1.8°(200步/转),A4988驱动器可以支持更高的微步驱动方式。例如用1/4模式时,电机将通过使用四种不同的电流,使电机驱动分辨率提高到每转800个微步,从而获得更高的控制精度。通过设置MS1,MS2和MS3可以得到5种不同的微步分辨率(默认为1/8步进方式),如下图所示: | ||
+ | [[File:MicroStep-setup.jpg||600px|center]] | ||
+ | **通过调节驱动器上的电位器可以调节步进电机的最大输出电流。能够让步进电机工作在额定电压之上,以达到更高的步率。一般步进电机使用A4988驱动时,步进电机实际测量的电流,大约是A4988输出电流上限的70%,所以需要设定的电流输出上限,会是电机标定的额定电流除以0.7。可以用如下方法计算,通过测量电压REF引脚,计算出相应的限电流(此处电流检测电阻为0.05Ω)。 | ||
+ | '''电流限制 = VREG X 2.5''' | ||
+ | |||
+ | 因此,如果要电机线圈得到1A的电流,电流限制应为1A/0.7 = 1.4A,这相当于VREF = 1.4A/2.5 = 0.56V。需要通过调节电位器将VREF电压调至0.56V。 | ||
+ | **可变电阻的金属螺丝头就是Vref的测量点,用万用表的正极做测量,另一头接在GND | ||
+ | **调整效果:调整的时候最终要使电流可以驱动步进电机,保证力量足够,但是不要过大使电机过热。 | ||
+ | '''注意:驱动板长时间大电流工作时,芯片会发热。有条件的话需要在上面加装散热片,帮助芯片散热。''' | ||
+ | *板载一个I2C接口,用于扩展 | ||
+ | |||
+ | |||
*SS34二极管整流 | *SS34二极管整流 | ||
*采用4988SETTR步进电机驱动 | *采用4988SETTR步进电机驱动 | ||
第47行: | 第96行: | ||
*Upin27底座 | *Upin27底座 | ||
*步进电机驱动模式:1/8(默认) | *步进电机驱动模式:1/8(默认) | ||
− | + | ===电机细分详解=== | |
{|class="wikitable" | {|class="wikitable" | ||
! rowspan="1" |MS1 || MS2 ||MS3 || 步进模式 | ! rowspan="1" |MS1 || MS2 ||MS3 || 步进模式 | ||
第63行: | 第112行: | ||
[[File:Stpshdxifen.jpg||400px|center]] | [[File:Stpshdxifen.jpg||400px|center]] | ||
引脚说明: | 引脚说明: | ||
− | [[File:Fronttip.jpg|| | + | [[File:Fronttip.jpg||600px|center]] |
− | + | ===步进电机驱动芯片A4988SETTR特点=== | |
**低RDS(上)输出 | **低RDS(上)输出 | ||
**自动电流衰减模式检测/选择 | **自动电流衰减模式检测/选择 | ||
第76行: | 第125行: | ||
**负载短路保护 | **负载短路保护 | ||
**五个可选步模式全1/2,1/4,1/8,和1/16 | **五个可选步模式全1/2,1/4,1/8,和1/16 | ||
+ | |||
+ | ===A4988电流调整=== | ||
+ | [[File:Apeitiaozheng.jpg||400px|thumb|center]] | ||
+ | *调整4988步进马达驱动板电流上限特别注意:测量电压的时候千万要小心,不要短路到不该碰到的接点,很可能会造成4988烧毁!!! | ||
+ | *特别注意:4988的输出电流,超过1安培的话,必须加装散热片。超过1.5安培,需要再加风扇。就算有安装散热片、风扇,输出电流也不应超过2安培。否则有烧毁的危险。 | ||
+ | *根据Pololu产品网页上的说明,一般步进马达使用4988驱动时,步进马达实际测量到的电流,大约是4988输出电流上限的0.7倍。所以需要设定的电流输出上限,会是马达标定的额定电流除以0.7。 | ||
+ | *4988输出电流上限的计算公式:I=Vref/(8xRs). | ||
+ | *Vref是参考电压,利用可变电阻设计出可以调整Vref的电路,让使用者能够自行调整输出电流上限。 | ||
+ | Rs是参考电阻,我们使用的是0.11Ω的。 | ||
+ | *可变电阻的金属螺丝头就是Vref的测量点,用万用表的正极做测量,另一头接在GND | ||
+ | *举例说明如果你买到的步进马达,额订电流是1.5安培,那4988输出电流上限会是 1.5/0.7 = 2.14 安培。之后Rs是0.11欧姆,那你需要把Vref调整成 (1.5/0.7)*8*0.11 = 1.88伏特 | ||
+ | *调整效果:调整的时候最终要使电流可以驱动步进电机,保证力量足够,但是不要过大使电机过热。 | ||
==文档== | ==文档== | ||
− | * | + | *原理图: |
− | [[ | + | 【'''[[media:Microduino-Stepper.pdf |Shield Stepper原理图]]'''】 |
− | + | ||
*步进电机驱动A4988SETTR | *步进电机驱动A4988SETTR | ||
− | [[ | + | 【'''[[media:A4988datasheet.pdf | A4988Datasheet]]'''】 |
− | |||
==开发== | ==开发== | ||
主要应用在平衡车上。Upin27接口可叠加Microduino扩展模块做二次开发。 | 主要应用在平衡车上。Upin27接口可叠加Microduino扩展模块做二次开发。 | ||
+ | *简单示例程序 | ||
+ | 将步进电机使用2.54 4pin连接线接在MotorA接口上 | ||
+ | 程序效果是使步进电机正转一个角度,停止500ms继续正转。如需要反转则将注释部分取消并注释掉上面两行 | ||
+ | <source lang="cpp"> | ||
+ | //声明Motor1引脚的驱动管脚D5,A0,使能D4 | ||
+ | #define MOTOR_EN 4 //PORTB,0 | ||
+ | #define MOTOR1_DIR A0 //PORTA,7 | ||
+ | #define MOTOR1_STEP 5 //PORTB,1 | ||
+ | |||
+ | void setup() { | ||
+ | // put your setup code here, to run once: | ||
+ | pinMode(MOTOR_EN, OUTPUT); | ||
+ | pinMode(MOTOR1_DIR, OUTPUT); | ||
+ | pinMode(MOTOR1_STEP, OUTPUT); | ||
+ | |||
+ | digitalWrite(MOTOR_EN, LOW); //使能 | ||
+ | |||
+ | } | ||
+ | void step(boolean dir, int steps) //步进函数,第一个变量是方向,第二个变量是步数即转的角度 | ||
+ | { | ||
+ | digitalWrite(MOTOR1_DIR, dir); | ||
+ | delay(5); | ||
+ | for (int i = 0; i < steps; i++) { | ||
+ | digitalWrite(MOTOR1_STEP, HIGH); | ||
+ | delayMicroseconds(200); | ||
+ | digitalWrite(MOTOR1_STEP, LOW); | ||
+ | delayMicroseconds(200); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | step(1, 1000); //正转 | ||
+ | delay(500); | ||
+ | // step(0,1000); //反转 | ||
+ | // delay(500); | ||
+ | } | ||
+ | |||
+ | </source> | ||
==应用== | ==应用== |
2017年4月29日 (六) 04:07的最新版本
Language | English |
---|
Microduino-Shield Stepper板子一款带转换器和过流保护的DMOS微步驱动底板,该底板可在全、半、1/4、1/8、1/16步进模式下驱动两相步进电机,能够最多同时操作4路电机。
特色步进电机是一种将脉冲信号变换成相应的角位移(或线位移)的电磁装置,是一种特殊的电机。一般电机都是连续转动的,而步进电机则有定位和运转两种基本状态,当有脉冲输入时步进电机一步一步地转动,每给它一个脉冲信号,它就转过固定的角度。
规格
电流限制 = VREG X 2.5 因此,如果要电机线圈得到1A的电流,电流限制应为1A/0.7 = 1.4A,这相当于VREF = 1.4A/2.5 = 0.56V。需要通过调节电位器将VREF电压调至0.56V。
注意:驱动板长时间大电流工作时,芯片会发热。有条件的话需要在上面加装散热片,帮助芯片散热。
电机细分详解
引脚说明: 步进电机驱动芯片A4988SETTR特点
A4988电流调整
Rs是参考电阻,我们使用的是0.11Ω的。
文档
开发主要应用在平衡车上。Upin27接口可叠加Microduino扩展模块做二次开发。
将步进电机使用2.54 4pin连接线接在MotorA接口上 程序效果是使步进电机正转一个角度,停止500ms继续正转。如需要反转则将注释部分取消并注释掉上面两行 //声明Motor1引脚的驱动管脚D5,A0,使能D4
#define MOTOR_EN 4 //PORTB,0
#define MOTOR1_DIR A0 //PORTA,7
#define MOTOR1_STEP 5 //PORTB,1
void setup() {
// put your setup code here, to run once:
pinMode(MOTOR_EN, OUTPUT);
pinMode(MOTOR1_DIR, OUTPUT);
pinMode(MOTOR1_STEP, OUTPUT);
digitalWrite(MOTOR_EN, LOW); //使能
}
void step(boolean dir, int steps) //步进函数,第一个变量是方向,第二个变量是步数即转的角度
{
digitalWrite(MOTOR1_DIR, dir);
delay(5);
for (int i = 0; i < steps; i++) {
digitalWrite(MOTOR1_STEP, HIGH);
delayMicroseconds(200);
digitalWrite(MOTOR1_STEP, LOW);
delayMicroseconds(200);
}
}
void loop() {
step(1, 1000); //正转
delay(500);
// step(0,1000); //反转
// delay(500);
}
应用购买历史图库视频 |