本帖最后由 jewelry21 于 2020-6-17 15:03 編輯
小白最近在學(xué)習(xí)uno,用搖桿+28電機(jī)做實(shí)驗(yàn),邊學(xué)邊做,下面的程序能做到X軸上控制步進(jìn)機(jī)轉(zhuǎn)動(dòng),如何實(shí)現(xiàn)在Y軸上也能控制一個(gè)電機(jī)呢?
這段程序沒有像其他的一樣用define來定義A0或A1,直接插線就成了,于是想著在后面也復(fù)制一段,改針腳什么的,改來改去驗(yàn)證都不通過,想煩請(qǐng)師傅們提示一下如何修改?萬分感激!
//PS2搖桿控制X,Y方向各控制一個(gè)步進(jìn)電機(jī) int apin=8; //定義X軸電機(jī)使用8,9,10,11號(hào)針腳 int bpin=9; int cpin=10; int dpin=11; int epin=4; //定義Y軸電機(jī)使用4,5,6,7號(hào)針腳 int fpin=5; int gpin=6; int hpin=7; int delay1; //左拉搖桿時(shí)延時(shí) int delay2; //右推搖桿時(shí)延時(shí) int delay3; //上推搖桿時(shí)延時(shí) int delay4; //下拉搖桿時(shí)延時(shí) void setup() { pinMode(apin,OUTPUT); //關(guān)閉X軸電機(jī) pinMode(bpin,OUTPUT); pinMode(cpin,OUTPUT); pinMode(dpin,OUTPUT); pinMode(epin,OUTPUT); //關(guān)閉Y軸電機(jī) pinMode(fpin,OUTPUT); pinMode(gpin,OUTPUT); pinMode(hpin,OUTPUT); Serial.begin(9600); //開啟調(diào)試輸出,設(shè)定9600波特率 } void loop() { int x; int y; x=map(analogRead(0),0,1023,0,254); //從A0讀取X軸搖桿隨機(jī)值 y=map(analogRead(1),0,1023,0,254); //從A1讀取Y軸搖桿隨機(jī)值 Serial.println(x); //以十進(jìn)制形式輸出x的ASCII編碼值,并同時(shí)跟隨一個(gè)回車和換行符 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) { } } |