Arduino Mega 2560で制御する4階対応スマートサービスエレベーター
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino Mega 2560 | 1 | ATMega2560搭載 |
| OpenBuildsマイクロリミットスイッチ | 4 | 各階の検出用 |
プロジェクト概要
4階建てビル用サービスエレベーターの制御システムを設計・テストしました。マイクロコントローラ(ATMega2560)が現在位置を判断し、適切なコンタクタに通電してモーターを正逆回転させます。目標階に到達したらモーターへの給電を停止します。また、安全機能としてエレベーターが移動する前に必ずドアを閉め、到着時に自動で開ける制御も実装しています。
デモ動画
1.1 三相モーターの配線
重い荷物を運ぶため三相モーターを採用。メインの三相電源から2つのコンタクタを経由してモーターに給電します。
- 第1コンタクタON、第2コンタクタOFF → 正転(上昇)
- 第1コンタクタOFF、第2コンタクタON → 逆転(下降)
逆転時は配線を入れ替える必要があります。


1.2 階層検出
各階にリミットスイッチを設置し、エレベーターがその階に到達するとスイッチが閉じてマイコンに通知します。移動中はスイッチが開いています。

スイッチのLow→High遷移は極めて短時間で、通常のループ処理では検出漏れのリスクがあります。これを解決するため、割り込み(Interrupt)を使用します。Arduino Mega 2560には6つの割り込み対応ピンがあり、4階分のスイッチに十分対応できます。



1.3 モーターの上下制御
2つの12V DCリレーでコンタクタのAC電源を制御し、モーターの正逆を切り替えます。リレー駆動にはトランジスタを使用しています。

- PNPトランジスタでハイサイド(12V側)をスイッチング。MCUは5V出力しかできないため必要
- NPNトランジスタでローサイドをグラウンドに落として回路を完成
- MCUからの消費電流を最小限に抑制
- バックエレキからMCUを保護
1.3.1 フライバックダイオードによる保護
リレーコイル両端にフライバックダイオードを接続し、スイッチング時のサージ電圧からMCUを守ります。

1.3.2 ユーザー入力制御
4つの階ボタンでユーザーが行き先を指定。ボタン押下で一時的にHigh信号が出ます。MCUは現在階と目標階を比較し、上昇か下降かを判断します。


従来は方向検出用の追加スイッチが必要でしたが、ソフトウェアで現在階を変数保持し、目標階と比較することでハードウェアを削減できました。
例:現在2階(Pin 3 High)→ 4階ボタン押下 → 4 > 2 なのでMotorUp信号出力 → 3階通過で現在階更新 → 4階到達でMotorUp停止
1.3.3 制御系と入力系の絶縁
エレベーターの金属ボディからのACノイズがリミットスイッチ経由でMCUに入り、誤検出を招いていました。これをフォトカプラで絶縁して解決しました。

リミットスイッチが閉じるとLEDが点灯、フォトトランジスタが導通してMCUにHigh信号を伝達。入力側とMCUが電気的に分離されます。
1.4 プロトタイプ



製造プロセス
- エレベーター:設計、歴史、未来の革新
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoプロジェクトのための最適化電源ソリューション
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- 高性能 Arduino 気象観測気球データロガーの製作ガイド
- ゲーム用カスタムArduinoジョイスティックハンドルの製作