Prototipe lift 3 lantai menggunakan Arduino bisa dibuat dengan beberapa komponen dasar dan kode pemrograman sederhana. Proyek ini cocok untuk pemula yang ingin belajar tentang kontrol motor, sensor, dan logika pemrograman.
Daftar Alat dan Bahan
Berikut adalah daftar komponen yang dibutuhkan untuk membuat prototipe ini:
Arduino Uno: Ini adalah "otak" dari sistem yang akan memproses input dari tombol dan mengendalikan motor.
Motor Servo: Akan digunakan untuk menggerakkan kabin lift naik dan turun. Motor servo lebih mudah dikendalikan untuk posisi spesifik dibandingkan motor DC biasa.
Kawat Jumper: Digunakan untuk menghubungkan semua komponen ke Arduino.
Kabel USB: Untuk menghubungkan Arduino ke komputer saat mengunggah program.
Breadboard: Papan prototipe untuk merangkai sirkuit tanpa perlu menyolder.
Tombol Tekan (Pushbutton): Tiga tombol untuk memanggil lift dari setiap lantai.
Resistor: Tiga buah resistor 10K Ohm untuk rangkaian tombol (pull-down resistor).
LED: Tiga LED (misalnya, merah, kuning, hijau) sebagai indikator posisi lift di setiap lantai.
Resistor 220 Ohm: Tiga buah untuk membatasi arus LED.
Bahan untuk Struktur Lift:
Kardus, kayu, atau akrilik: Untuk membuat struktur menara, kabin lift, dan lantai. Kardus adalah pilihan paling sederhana dan murah.
Tali atau benang: Untuk menghubungkan motor servo ke kabin lift.
Langkah-langkah Pembuatan
1. Merakit Struktur Fisik
Buat struktur menara dari kardus setinggi tiga lantai. Pastikan ada ruang yang cukup untuk kabin lift bergerak bebas.
Buat kabin lift dari kardus yang ukurannya sesuai dengan menara.
Pasang motor servo di bagian atas menara. Hubungkan poros motor servo ke kabin lift menggunakan tali atau benang. Saat motor berputar, tali akan menarik atau mengulur kabin lift.
2. Merangkai Sirkuit Elektronik
Tombol: Hubungkan satu kaki dari masing-masing tombol ke pin digital Arduino (misalnya pin 2, 3, 4). Kaki yang lain dihubungkan ke ground melalui resistor 10K Ohm (pull-down resistor) dan juga ke 5V.
LED: Hubungkan kaki positif (anoda) dari masing-masing LED ke pin digital Arduino (misalnya pin 5, 6, 7) melalui resistor 220 Ohm. Kaki negatif (katoda) dihubungkan ke ground.
Motor Servo: Hubungkan kabel sinyal (biasanya kuning atau oranye) dari motor servo ke pin digital PWM pada Arduino (misalnya pin 9). Kabel daya (merah) ke 5V, dan kabel ground (coklat atau hitam) ke ground.
Kode Program (Sketch) Arduino
Kode ini akan mengontrol gerakan lift berdasarkan tombol yang ditekan. Berikut adalah contoh kodenya:
#include <Servo.h>
Servo myServo; // Membuat objek servo
// Pin untuk tombol
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
// Pin untuk LED
const int ledPin1 = 5;
const int ledPin2 = 6;
const int ledPin3 = 7;
// Pin untuk motor servo
const int servoPin = 9;
// Posisi servo untuk setiap lantai
const int floor1Pos = 0; // Lantai 1 (paling bawah)
const int floor2Pos = 90; // Lantai 2 (tengah)
const int floor3Pos = 180; // Lantai 3 (paling atas)
// Variabel untuk menyimpan posisi lift saat ini
int currentFloor = 1;
void setup() {
// Inisialisasi pin tombol sebagai INPUT_PULLUP
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
// Inisialisasi pin LED sebagai OUTPUT
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
// Inisialisasi motor servo
myServo.attach(servoPin);
// Atur lift ke posisi awal (lantai 1)
myServo.write(floor1Pos);
digitalWrite(ledPin1, HIGH); // Nyalakan LED lantai 1
}
void loop() {
// Cek tombol yang ditekan
if (digitalRead(buttonPin1) == HIGH && currentFloor != 1) {
goToFloor(1);
}
if (digitalRead(buttonPin2) == HIGH && currentFloor != 2) {
goToFloor(2);
}
if (digitalRead(buttonPin3) == HIGH && currentFloor != 3) {
goToFloor(3);
}
}
void goToFloor(int floor) {
// Matikan semua LED
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
// Gerakkan lift ke lantai yang diminta
if (floor == 1) {
myServo.write(floor1Pos);
currentFloor = 1;
digitalWrite(ledPin1, HIGH);
} else if (floor == 2) {
myServo.write(floor2Pos);
currentFloor = 2;
digitalWrite(ledPin2, HIGH);
} else if (floor == 3) {
myServo.write(floor3Pos);
currentFloor = 3;
digitalWrite(ledPin3, HIGH);
}
// Beri jeda agar motor punya waktu bergerak
delay(1000);
}
Penjelasan Kode
#include <Servo.h>
: Ini adalah library yang wajib disertakan untuk mengendalikan motor servo.const int
: Digunakan untuk mendefinisikan pin yang digunakan, membuatnya lebih mudah dibaca dan diubah.setup()
: Fungsi ini dijalankan sekali saat Arduino dinyalakan. Digunakan untuk mengatur mode pin (input/output) dan posisi awal servo.loop()
: Fungsi ini dijalankan berulang kali. Di sini, program terus-menerus mengecek apakah ada tombol yang ditekan.goToFloor(int floor)
: Ini adalah fungsi kustom yang dibuat untuk menggerakkan lift.Fungsi ini menerima nomor lantai sebagai input.
myServo.write(posisi)
: Perintah ini menggerakkan motor servo ke sudut yang ditentukan (0, 90, atau 180 derajat).digitalWrite(pin, HIGH/LOW)
: Mengendalikan LED, menyalakannya saat lift berada di lantai tujuan dan mematikannya saat bergerak.
Dengan mengikuti langkah-langkah di atas, kamu bisa membuat prototipe lift sederhana yang fungsional, mempraktikkan dasar-dasar elektronika dan pemrograman Arduino.
Komentar
Posting Komentar