您的位置:首页 > 产品设计 > UI/UE

【Arduino学习笔记】ULN2003APG步进电机控制代码

2015-03-03 22:10 399 查看
最近折腾arduino,搞定了ULN2003控制步进电机部分,现将代码分享出来,也作为学习资料备份,以备日后使用。

模块1,2,3,4口分别插入UNO的8,9,10,11口,控制代码如下,修改dir值可控制电机旋转方向

int Pin0=8;
int Pin1=9;
int Pin2=10;
int Pin3=11;
int _step=0;
boolean dir=true;//正反转

int stepperSpeed=10;//电机转速,1ms一步

void setup(){
pinMode(Pin0,OUTPUT);
pinMode(Pin1,OUTPUT);
pinMode(Pin2,OUTPUT);
pinMode(Pin3,OUTPUT);
Serial.begin(9600);
}

void loop(){
switch(_step){
case 0:
Serial.println("0");
digitalWrite(Pin0,HIGH);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,LOW);
break;
case 1:
Serial.println("1");
digitalWrite(Pin0,LOW);
digitalWrite(Pin1,HIGH);
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,LOW);
break;
case 2:
Serial.println("2");
digitalWrite(Pin0,LOW);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,HIGH);
digitalWrite(Pin3,LOW);
break;
case 3:
Serial.println("3");
digitalWrite(Pin0,LOW);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,HIGH);
break;
default:
digitalWrite(Pin0,LOW);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,LOW);
break;
}

if(dir){
_step++;
}else{
_step--;
}

if(_step>3){
_step=0;
}

if(_step<0){
_step=3;
}
delay(stepperSpeed);
}


欢迎加群254267969,共同交流学习~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: