手持脱机步进电机控制器@青年创造工坊-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3342|回复: 1

手持脱机步进电机控制器@青年创造工坊

[复制链接]
发表于 2019-4-9 21:31 | 显示全部楼层 |阅读模式
手持脱机步进电机控制器

屏幕截图(793).png
简介:
    不知道各位小伙伴们常不常用步进电机,因其精确的控制性很容易实现步进电机的角度和速度控制,然而也因为此特性导致在前期对步进电机调试时比较繁琐;所以结合arduino nano和A4988,我们开源一款方便测试步进电机,同时又可烧写不同程序实现移植复用的手持脱机步进电机控制器。


材料: 屏幕截图(790).png
品名单价数量合计
arduino nano
12
1
12
A4988步进电机驱动板
2.9
1
2.9
3.5mmDC插座
0.8
1
0.8
排插7pin
0.09
4
0.36
排插8pin
0.12
2
0.24
排插4pin
0.08
1
0.08
XH2.54,4pin弯针
0.04
1
0.04
导线
0.1
18
1.8
洞洞板,3x7cm
2.5
1
2.5


接线图:

手持步进电机控制接线图.png
烧录代码:[mw_shl_code=arduino,true]int Msteppin=7;
int Mdirpin=6;
int Menpin=8;
int i=200;
int BUTTON1 = A2;
int BUTTON2 = A3;
char key;

void setup()
{
pinMode(Msteppin,OUTPUT);//驱动
pinMode(Mdirpin,OUTPUT);//方向
pinMode(Menpin,OUTPUT);//使能
digitalWrite(Menpin,LOW);
pinMode(A2,INPUT_PULLUP);//A2上拉
pinMode(A3,INPUT_PULLUP);//A3上拉
Serial.begin(9600);

}
void a()
{digitalWrite(Mdirpin,HIGH);
int i=0;
while(i<200)
{digitalWrite(Msteppin,HIGH);
delayMicroseconds(800);
digitalWrite(Msteppin,LOW);
delayMicroseconds(800);
i++;}
}
void b()
{
  digitalWrite(Mdirpin,LOW);
  int i=0;
while(i<200)
{digitalWrite(Msteppin,HIGH);
delayMicroseconds(800);
digitalWrite(Msteppin,LOW);
delayMicroseconds(800);
i++;}
}
void loop()
{  
     while (digitalRead(BUTTON2) == LOW)
     { a();Serial.println('0'); }
     while (digitalRead(BUTTON1) == LOW)
     { b();Serial.println('c'); }
     
   
  int key=Serial.read();
   switch(key)
   { case'0':a();delay(10);break;
    case'c':b();delay(10);break;
    case't':a();delay(1000);b();delay(1000);break;
    default:break;
    }
   
  

}[/mw_shl_code]
实物展示:
屏幕截图(791).png 屏幕截图(792).png 屏幕截图(794).png


视频地址:


3d打印外壳下载地址:
http://www.dayin.la/user/23742
发表于 2019-4-10 14:23 | 显示全部楼层
不错,谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 05:41 , Processed in 0.079171 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表