Noodlejay BlaBla

welcome and happy to share


發表留言

Arduino四相五線步進馬達28BYJ48 5V + ULN 2003A

四相就是步進馬達即是有四個線圈假設為A、B、C、D,做動原理就是透過脈波依序去激磁線圈,

A→B→C→D→A→B→………A→B→C→D→

而ULN2003A其實只是提供了很多組電晶體(達靈頓對),作用是放大提供給線圈的電流,因為Arduino本身沒辦法給那麼大的電流,而這顆IC可以節省很多接線和空間,但如果你沒有這顆IC,其實用四顆電晶體(達靈頓對)來搭電路,就可以達到一樣的功能。

在此提供了一個簡單的範例,如果有任何錯誤或不清楚的地方歡迎留言討論。

//NOTE:
//程式結果:維持同一個方向持續的旋轉。

int state[8][4]={
0,0,0,1,
0,0,1,1,
0,0,1,0,
0,1,1,0,
0,1,0,0,
1,1,0,0,
1,0,0,0,
1,0,0,1
};

int n=0;

void setup() {
  // put your setup code here, to run once:
  pinMode(8,OUTPUT); 
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
  
  Serial.begin(9600);

  for(int j=0;j<8;j++){
    for(int i=0;i<4;i++){
       Serial.print(state[j][i]);
       Serial.print(",");
    }
    Serial.println("");
  }

}

void loop() {
  // put your main code here, to run repeatedly:
  
        
        digitalWrite(8,state[n][0]);
        digitalWrite(9,state[n][1]);
        digitalWrite(10,state[n][2]);
        digitalWrite(11,state[n][3]);

        n++;
        if(n>7){
          n=0;
        }
        
        delay(5); // 控制轉速
    
}

參考資料:

步進馬達簡介:

https://openhome.cc/Gossip/CodeData/mBlockArduino/mBlockArduino16.html

香港教師?詳細拆解

https://miteen.hk/share/28BYJ-48/

管他什麼原理,只要給我library

https://blog.jmaker.com.tw/uln2003-28byj-48/

超詳細的篇幅介紹
https://cookierobotics.com/042/