##概要
- Arduinoで鉄道模型コントローラを作成しました。ワンハンドルで操作します。
- モジュールの組み合わせで作成できるので、回路は簡単です(多少はんだ付けあり)。
##機能
- ワンハンドルで進行方向・速度を操作します(ハンドルを押すと非常停止)。
- 液晶画面に現在の進行方向と速度を表示します。
- 速度は8段階(ノッチ)に調整可能です。
- ゆっくりと加減速します。
- 停止時も車両の室内灯が点灯します。
##使用部品
- Arduino ProMini(5v)
- 1602 LCDディスプレイモジュール
- L298N デュアルHブリッジ DCステップ モーター
- ロータリーエンコーダ(押しボタンつき)
- つまみ
- DCジャック
- 100均はがきケース
- 12V ACアダプタ(1A)
- L298Nには12VのACアダプタを接続(ArduinoはL298Nから給電)
部品名 | 部品ピン | Arduino |
---|---|---|
ロータリーエンコーダ | + | VCC |
ロータリーエンコーダ | GND | GND |
ロータリーエンコーダ | SW | D4 |
ロータリーエンコーダ | DT | D2 |
ロータリーエンコーダ | CLK | D3 |
LCD | + | VCC |
LCD | GND | GND |
LCD | SDA | A4 |
LCD | SCL | A5 |
L298N | IN1 | D10 |
L298N | IN2 | D9 |
L298N | ENA | D11 |
L298N | 5V | RAW |
L298N | GND | GND |
##ソースコード
https://github.com/type89/arduino_N_controller_L298N/blob/main/N_controller_L298N.ino
- 液晶画面が見づらく申し訳ありません。。。
##詰まったところ・工夫したところ
- 電源を入れてから操作可能になるまでに、電車が暴走しました。setupでシリアル通信がない間は何もしない、というロジックを加えて、動かないようになりました。
- 車両によってモーターのパワーが違うので、速度調整を細かくして、どの車両でも操作できるようにしました。
- デューティー比が低い時はモーターの動きが不安定(電圧も7Vくらいに下がる)です。そこで低いノッチのときは、最初の一瞬だけ高いデューティー比を入れています。
- ロータリーエンコーダをゆっくり回さないと、誤動作します。
##参考にしたサイト