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