ESP8266驱动五线四相步进电机

一.系统概述

使用ESP8266作为主控,驱动是ULN2003A,驱动五线四相步进电机。

(1)五相步进电机工程图

(2)驱动电路原理图

 

 

二.代码部分

#define D1 5
#define D2 4
#define D3 0
#define D4 2
#define DSD 5
void setup() {
  // put your setup code here, to run once:
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(0,OUTPUT);
pinMode(2,OUTPUT);
pinMode(14,INPUT_PULLUP);
pinMode(12,INPUT_PULLUP);
}

void loop() {
  // put your main code here, to run repeatedly:
if(digitalRead(14)!=1)
{
clockward90();
}

if(digitalRead(12)!=1)
{
cclockward90();  
}
}

void clockward90(){
for(int i=1;i<=128;i++)
{
delay(DSD);
phaseA();
delay(DSD);
phaseAB();
delay(DSD);
phaseB();
delay(DSD);
phaseBC();
delay(DSD);
phaseC();
delay(DSD);
phaseCD();
delay(DSD);
phaseD();
delay(DSD);
phaseDA();
}
phaseZero();
}

void cclockward90(){
for(int i=1;i<=128;i++)
{
delay(DSD);
phaseDA();
delay(DSD);
phaseD();
delay(DSD);
phaseCD();
delay(DSD);
phaseC();
delay(DSD);
phaseBC();
delay(DSD);
phaseB();
delay(DSD);
phaseAB();
delay(DSD);
phaseA();
}
phaseZero();
}


void phaseA(){
digitalWrite(5,HIGH);
digitalWrite(4,LOW);
digitalWrite(0,LOW);
digitalWrite(2,LOW);
}

void phaseB(){
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
digitalWrite(0,LOW);
digitalWrite(2,LOW);
}

void phaseC(){
digitalWrite(5,LOW);
digitalWrite(4,LOW);
digitalWrite(0,HIGH);
digitalWrite(2,LOW);
}

void phaseD(){
digitalWrite(5,LOW);
digitalWrite(4,LOW);
digitalWrite(0,LOW);
digitalWrite(2,HIGH);
}
void phaseAB(){
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
digitalWrite(0,LOW);
digitalWrite(2,LOW);
}

void phaseBC(){
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
digitalWrite(0,HIGH);
digitalWrite(2,LOW);
}

void phaseCD(){
digitalWrite(5,LOW);
digitalWrite(4,LOW);
digitalWrite(0,HIGH);
digitalWrite(2,HIGH);
}

void phaseDA(){
digitalWrite(5,HIGH);
digitalWrite(4,LOW);
digitalWrite(0,LOW);
digitalWrite(2,HIGH);
}


void phaseZero(){
digitalWrite(5,LOW);
digitalWrite(4,LOW);
digitalWrite(0,LOW);
digitalWrite(2,LOW);
}

三.工作情况

实验情况:工作稳定,满足需要。电机很便宜,工作也很稳定。就是转的有点慢。

       每次按下按钮,步进电机顺时针/逆时针旋转90°,接下来步进电机的所有输入INT引脚打高,步进电机内部线圈此时不通过电流,来减小步进电机在待机状态下的发热。

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值