Program Arduino Mega untuk mengendalikan dua motor pintu dan satu motor lifter dengan timing non-blocking (millis()/micros()).
File perangkat dipisahkan menjadi beberapa header .h di folder utama, sehingga file .ino hanya mengatur konfigurasi dan alur utama.
docking-controller.ino
ButtonHandler.h
DoorHandler.h
LedHandler.h
LifterHandler.h
StepperMotor.h
ButtonHandler.h: tombol denganINPUT_PULLUPdan deteksi transisi tekan.LedHandler.h: kontrol LED mode.StepperMotor.h: pulse, direction, start, stop, dan timing motor.DoorHandler.h: urutan buka/tutup dua motor pintu.LifterHandler.h: gerakan naik/turun motor lifter dan timeout.
OPEN: membuka pintu kanan lalu kiri.CLOSE: menutup pintu kiri lalu kanan.UP: menjalankan lifter ke atas selama 17 detik.DOWN: menjalankan lifter ke bawah selama 17 detik.
Tombol menggunakan INPUT_PULLUP, sehingga tombol aktif saat terhubung ke LOW.
| Fungsi | Pin |
|---|---|
| Door right pulse / direction | 3 / 37 |
| Door left pulse / direction | 5 / 35 |
| Lifter pulse / direction | 7 / 33 |
| Open / close button | 22 / 23 |
| Up / down button | 25 / 24 |
| Mode LED 1 / 2 | 39 / 41 |
- Jeda start motor kedua: 1 detik.
- Durasi motor pintu: 15 detik.
- Durasi motor lifter: 17 detik.
- Perubahan level pulse: setiap 1000 mikrodetik.
Buka docking-controller.ino di Arduino IDE, pilih board Arduino Mega or Mega 2560, pilih port yang sesuai, lalu upload.
Serial Monitor menggunakan baud rate 115200.