【Arduino學習筆記】ULN2003APG步進電機控制代碼

最近折騰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,共同交流學習~



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章