标题: Arduino XY轴上控制步进机转动,烦请师傅们指点指点程序如何修改,谢谢! [打印本页]
作者: jewelry21 时间: 2020-6-16 13:57
标题: Arduino XY轴上控制步进机转动,烦请师傅们指点指点程序如何修改,谢谢!
本帖最后由 jewelry21 于 2020-6-17 15:03 编辑
小白最近在学习uno,用摇杆+28电机做实验,边学边做,下面的程序能做到X轴上控制步进机转动,如何实现在Y轴上也能控制一个电机呢?
这段程序没有像其他的一样用define来定义A0或A1,直接插线就成了,于是想着在后面也复制一段,改针脚什么的,改来改去验证都不通过,想烦请师傅们提示一下如何修改?万分感激!
//PS2摇杆控制X,Y方向各控制一个步进电机
int apin=8; //定义X轴电机使用8,9,10,11号针脚
int bpin=9;
int cpin=10;
int dpin=11;
int epin=4; //定义Y轴电机使用4,5,6,7号针脚
int fpin=5;
int gpin=6;
int hpin=7;
int delay1; //左拉摇杆时延时
int delay2; //右推摇杆时延时
int delay3; //上推摇杆时延时
int delay4; //下拉摇杆时延时
void setup()
{
pinMode(apin,OUTPUT); //关闭X轴电机
pinMode(bpin,OUTPUT);
pinMode(cpin,OUTPUT);
pinMode(dpin,OUTPUT);
pinMode(epin,OUTPUT); //关闭Y轴电机
pinMode(fpin,OUTPUT);
pinMode(gpin,OUTPUT);
pinMode(hpin,OUTPUT);
Serial.begin(9600); //开启调试输出,设定9600波特率
}
void loop()
{
int x;
int y;
x=map(analogRead(0),0,1023,0,254); //从A0读取X轴摇杆随机值
y=map(analogRead(1),0,1023,0,254); //从A1读取Y轴摇杆随机值
Serial.println(x); //以十进制形式输出x的ASCII编码值,并同时跟随一个回车和换行符
Serial.println(y);
if (x>130);
{
int delay1=264-x;
digitalWrite(apin,HIGH);
delay(delay1);
digitalWrite(apin,LOW);
digitalWrite(bpin,HIGH);
delay(delay1);
digitalWrite(bpin,LOW);
digitalWrite(cpin,HIGH);
delay(delay1);
digitalWrite(cpin,LOW);
digitalWrite(dpin,HIGH);
delay(delay1);
digitalWrite(dpin,LOW);
Serial.print("264-");
Serial.print(x);
Serial.print("=");
Serial.println(delay1);
}
else if (x<115)
{
delay2=x+10;
Serial.print(x);
Serial.print("+10");
Serial.print("=");
Serial.println(delay2);
digitalWrite(apin,HIGH);
delay(delay2);
digitalWrite(apin,LOW);
digitalWrite(dpin,HIGH);
delay(delay2);
digitalWrite(dpin,LOW);
digitalWrite(cpin,HIGH);
delay(delay2);
digitalWrite(cpin,LOW);
digitalWrite(bpin,HIGH);
delay(delay2);
digitalWrite(bpin,LOW);
}
if (y>130);
{
int delay3=264-y;
digitalWrite(epin,HIGH);
delay(delay3);
digitalWrite(epin,LOW);
digitalWrite(fpin,HIGH);
delay(delay3);
digitalWrite(fpin,LOW);
digitalWrite(gpin,HIGH);
delay(delay3);
digitalWrite(gpin,LOW);
digitalWrite(hpin,HIGH);
delay(delay3);
digitalWrite(hpin,LOW);
Serial.print("264-");
Serial.print(y);
Serial.print("=");
Serial.println(delay3);
}
else if (y<115)
{
delay4=y+10;
Serial.print(y);
Serial.print("+10");
Serial.print("=");
Serial.println(delay4);
digitalWrite(epin,HIGH);
delay(delay4);
digitalWrite(epin,LOW);
digitalWrite(hpin,HIGH);
delay(delay4);
digitalWrite(hpin,LOW);
digitalWrite(gpin,HIGH);
delay(delay4);
digitalWrite(gpin,LOW);
digitalWrite(fpin,HIGH);
delay(delay4);
digitalWrite(fpin,LOW);
}
else if (110<x<130)
{
}
else if (100<y<130)
{
}
}
作者: jewelry21 时间: 2020-6-17 15:03
//PS2摇杆控制X,Y方向各控制一个步进电机
int apin=8; //定义X轴电机使用8,9,10,11号针脚
int bpin=9;
int cpin=10;
int dpin=11;
int epin=4; //定义Y轴电机使用4,5,6,7号针脚
int fpin=5;
int gpin=6;
int hpin=7;
int delay1; //左拉摇杆时延时
int delay2; //右推摇杆时延时
int delay3; //上推摇杆时延时
int delay4; //下拉摇杆时延时
void setup()
{
pinMode(apin,OUTPUT); //关闭X轴电机
pinMode(bpin,OUTPUT);
pinMode(cpin,OUTPUT);
pinMode(dpin,OUTPUT);
pinMode(epin,OUTPUT); //关闭Y轴电机
pinMode(fpin,OUTPUT);
pinMode(gpin,OUTPUT);
pinMode(hpin,OUTPUT);
Serial.begin(9600); //开启调试输出,设定9600波特率
}
void loop()
{
int x;
int y;
x=map(analogRead(0),0,1023,0,254); //从A0读取X轴摇杆随机值
y=map(analogRead(1),0,1023,0,254); //从A1读取Y轴摇杆随机值
Serial.println(x); //以十进制形式输出x的ASCII编码值,并同时跟随一个回车和换行符
Serial.println(y);
if (x>130);
{
int delay1=264-x;
digitalWrite(apin,HIGH);
delay(delay1);
digitalWrite(apin,LOW);
digitalWrite(bpin,HIGH);
delay(delay1);
digitalWrite(bpin,LOW);
digitalWrite(cpin,HIGH);
delay(delay1);
digitalWrite(cpin,LOW);
digitalWrite(dpin,HIGH);
delay(delay1);
digitalWrite(dpin,LOW);
Serial.print("264-");
Serial.print(x);
Serial.print("=");
Serial.println(delay1);
}
else if (x<115)
{
delay2=x+10;
Serial.print(x);
Serial.print("+10");
Serial.print("=");
Serial.println(delay2);
digitalWrite(apin,HIGH);
delay(delay2);
digitalWrite(apin,LOW);
digitalWrite(dpin,HIGH);
delay(delay2);
digitalWrite(dpin,LOW);
digitalWrite(cpin,HIGH);
delay(delay2);
digitalWrite(cpin,LOW);
digitalWrite(bpin,HIGH);
delay(delay2);
digitalWrite(bpin,LOW);
}
if (y>130);
{
int delay3=264-y;
digitalWrite(epin,HIGH);
delay(delay3);
digitalWrite(epin,LOW);
digitalWrite(fpin,HIGH);
delay(delay3);
digitalWrite(fpin,LOW);
digitalWrite(gpin,HIGH);
delay(delay3);
digitalWrite(gpin,LOW);
digitalWrite(hpin,HIGH);
delay(delay3);
digitalWrite(hpin,LOW);
Serial.print("264-");
Serial.print(y);
Serial.print("=");
Serial.println(delay3);
}
else if (y<115)
{
delay4=y+10;
Serial.print(y);
Serial.print("+10");
Serial.print("=");
Serial.println(delay4);
digitalWrite(epin,HIGH);
delay(delay4);
digitalWrite(epin,LOW);
digitalWrite(hpin,HIGH);
delay(delay4);
digitalWrite(hpin,LOW);
digitalWrite(gpin,HIGH);
delay(delay4);
digitalWrite(gpin,LOW);
digitalWrite(fpin,HIGH);
delay(delay4);
digitalWrite(fpin,LOW);
}
else if (110<x<130)
{
}
else if (100<y<130)
{
}
}
作者: jewelry21 时间: 2020-6-17 15:05
请问师傅们能这么写么,验证的时候最后Y的else if报错
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |