9.Arduino+ステッピングモーター 28BYJ-48の実験


(1)実験写真






(2)回路図



(3)ステッピングモーター仕様書 + ドライバーボード回路図仕様書

   28BYJ-48.pdf


(4)ドライバーIC ULN2003 仕様書

   ULN2003.pdf


(5)プログラム

(1) 1−1相励磁、連続回転



void setup() {
pinMode(8, OUTPUT); // 出力に設定
pinMode(9, OUTPUT); // 出力に設定
pinMode(10, OUTPUT); // 出力に設定
pinMode(11, OUTPUT); // 出力に設定

Serial.begin(9600); // デバッグ用 9600bpsでポートを開く

}

unsigned int d = 3000; // ディレイμs

void loop() {

Serial.print("d = "); // デバッグ用
Serial.println(d);

digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);

delayMicroseconds(d);

digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);

delayMicroseconds(d);

digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);

delayMicroseconds(d);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);

delayMicroseconds(d);

}



(2)1−1相励磁:右1回3秒休左1回3秒休 繰り返し



void setup() {
pinMode(8, OUTPUT); // 出力に設定
pinMode(9, OUTPUT); // 出力に設定
pinMode(10, OUTPUT); // 出力に設定
pinMode(11, OUTPUT); // 出力に設定

Serial.begin(9600); // デバッグ用 9600bpsでポートを開く

}

unsigned int d = 3000; // ディレイμs

void loop() {

for(int i=0;i<=512;i++){

//Serial.print("d = "); // デバッグ用
//Serial.println(d);

digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);

delayMicroseconds(d);

digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);

delayMicroseconds(d);

digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);

delayMicroseconds(d);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);

delayMicroseconds(d);

}

delay(3000);

for(int i=0;i<=512;i++){

//Serial.print("d = "); // デバッグ用
//Serial.println(d);

digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);

delayMicroseconds(d);

digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);

delayMicroseconds(d);

digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);

delayMicroseconds(d);

digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);

delayMicroseconds(d);

}

delay(3000);

}



(6)実験動画

   IMG_5898.MOV