工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

28BYJ-48 ステッピングモーター完全ガイド:仕様・配線・ULN2003ドライバー・Arduino制御

28BYJ-48 ステッピングモーターとは?

28BYJ-48 ステッピングモーター完全ガイド:仕様・配線・ULN2003ドライバー・Arduino制御

図1:28BYJ-48 ステッピングモーター

28BYJ-48 は、5V駆動・ユニポーラ・4相・ギアード (減速比 1:64) ステッピングモーター です。パルス信号で角度・速度・方向を精密制御でき、Arduino等のマイコンと ULN2003 ドライバー基板 (数百円) で手軽に始められる「電子工作入門の定番モーター」です。

動作原理のポイント

ピン配置・内部構造

28BYJ-48 ステッピングモーター完全ガイド:仕様・配線・ULN2003ドライバー・Arduino制御

図2:28BYJ-48 ピン配置

28BYJ-48 ステッピングモーター完全ガイド:仕様・配線・ULN2003ドライバー・Arduino制御
リード線色 (一般的)機能備考
赤 (Red)コモン (共通端子)5V 接続 (センタータップ)
橙/ピンク (Orange/Pink)相 A (Phase A)ULN2003 IN1
黄 (Yellow)相 B (Phase B)ULN2003 IN2
桃/紫 (Pink/Purple)相 C (Phase C)ULN2003 IN3
青 (Blue)相 D (Phase D)ULN2003 IN4

※ リード色はロット/メーカーで異なる場合あり。コモン線 (赤系) は抵抗測定で確認推奨 (コモン-各相間で同一抵抗値)。

主要スペック

28BYJ-48 ステッピングモーター完全ガイド:仕様・配線・ULN2003ドライバー・Arduino制御

図3:CNC加工等の応用イメージ

項目仕様
定格電圧5V DC
相数4相 (ユニポーラ)
ステップ角 (モーター軸)5.625° (64ステップ/回転)
減速比1:64 (約 63.6839:1 実測値多し)
出力軸ステップ角5.625° / 64 ≈ 0.0879° (約 4096 ステップ/回転)
駆動周波数100 Hz 典型 (最大 約 500〜1000 Hz、負荷依存)
絶縁耐圧600V AC / 1mA / 1s
コイル抵抗50Ω ±7% (25℃)
摩擦トルク600〜1200 gf·cm
引き込みトルク300 gf·cm
自己位置決めトルク> 34.3 mN·m
質量約 35g

ULN2003 ドライバー基板との接続・Arduino 制御

28BYJ-48 ステッピングモーター完全ガイド:仕様・配線・ULN2003ドライバー・Arduino制御

図4:28BYJ-48 と ULN2003 ドライバー接続

出典: Wikipedia

必要な部品

配線手順

  1. モーターの 5ピンコネクタを ULN2003 基板のソケットに確実に挿入 (キー溝で極性合わせ)
  2. ULN2003 の IN1〜IN4 を Arduino デジタルピンに接続 (例: D8, D9, D10, D11)
  3. ULN2003 の GND を Arduino GND に接続 (共通グランド必須)
  4. ULN2003 の VCC (または +) を外部 5V 電源 + に接続
  5. 外部 5V 電源 - を Arduino GND / ULN2003 GND に共通接続
  6. ※ ULN2003 基板のジャンパー (5V/12V選択) は 5V 側に

Arduino スケッチ (標準 Stepper ライブラリ使用)


#include 

const int stepsPerRevolution = 2048;  // 出力軸 1回転分 (ハーフステップ換算 4096/2)
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);  // ピン順: IN1, IN3, IN2, IN4 (ライブラリ仕様注意)

void setup() {
  myStepper.setSpeed(10);  // RPM 設定 (負荷により実効速度低下)
  Serial.begin(9600);
}

void loop() {
  Serial.println("Clockwise 1 turn");
  myStepper.step(stepsPerRevolution);
  delay(1000);
  
  Serial.println("Counterclockwise 1 turn");
  myStepper.step(-stepsPerRevolution);
  delay(1000);
}

より高度な制御: AccelStepper ライブラリ推奨


#include 
#define HALFSTEP 8
AccelStepper stepper(HALFSTEP, 8, 10, 9, 11);

void setup() {
  stepper.setMaxSpeed(500.0);
  stepper.setAcceleration(200.0);
  stepper.moveTo(2048);  // 1回転
}

void loop() {
  if (stepper.distanceToGo() == 0) {
    stepper.moveTo(-stepper.currentPosition());  // 往復
  }
  stepper.run();
}

よくあるトラブルと対策

症状原因・対策
カタカタ音だけで回らない / 振動のみ配線順序誤り (IN順序確認)、電圧不足、負荷過大、ステップ角設定違い
途中で止まる / 脱調する加速急すぎ、負荷トルク不足、電源容量不足、配線接触不良
発熱が激しいユニポーラは常時通電相あり。駆動停止時は全相 LOW (リリース) 推奨
逆回転する / 方向不定IN1〜IN4 の接続順序がライブラリ期待順と異なる
出力軸が手で回せる (保持トルク弱)ユニポーラ非励磁時はフリー。保持必要なら通電継続 (発熱注意) またはブレーキ機構併用

応用例・プロジェクトアイデア

まとめ

28BYJ-48 + ULN2003 は、「数百円で精密位置決めを体験できる」最強の入門セットです。ギアードゆえの高トルク・高分解能・自己保持力を活かし、Arduino ライブラリ (Stepper / AccelStepper) で直感的に制御可能。発熱・脱調・配線順序の罠さえ押さえれば、ロボット・自動化・アート等多彩なプロジェクトの駆動源になります。次のステップとして、バイポーラステッピング (NEMA17等) + A4988/DRV8825/TMC2208 への移行も視野に入れて挑戦してみてください。ご質問はお気軽にどうぞ。

産業技術

  1. ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
  2. Arduino Nanoとジョイスティックで2軸ステッピングモーターを制御:Visuinoで簡単プログラミング
  3. TinyMLで植物の健康状態を診断:実践ガイド
  4. サーミスタを使った温度測定: Arduinoステップバイステップガイド
  5. Arduinoで楽器演奏:音階生成のステップバイステップガイド
  6. ArduinoをNMEA-0183に接続するステップバイステップガイド
  7. ArduinoでModbusをマスターする:ステップバイステップガイド
  8. ジョイスティックで精密制御:Arduino UNOと28BYJ-48ステッピングモーター
  9. ステッピングモーター:種類、特性、実用応用
  10. C# Queue完全ガイド:Enqueue、Dequeue、FIFO操作の実例解説
  11. Java this キーワード完全マスター:目的、用法、実践例