Lift Layanan Pintar Berbasis Arduino untuk Operasi 4 Lantai
Komponen dan Perlengkapan
Arduino Mega 2560
×
1
OpenBuilds Micro Limit Switch
×
4
Tentang Proyek Ini
Rancang dan uji sistem kontrol untuk lift layanan yang beroperasi pada empat lantai. Mikrokontroler (ATMega2560) digunakan untuk menentukan kontactor mana yang akan diberi daya untuk mengaktifkan motor lift sehingga lift dapat bergerak naik atau turun dengan memeriksa lantai tempat lift berada saat ini. Sistem kontrol juga harus dapat memutuskan daya ke lift saat telah mencapai lantai yang diperlukan. Faktor keamanan integral harus diimplementasikan untuk selalu menutup pintu lift sebelum bergerak naik atau turun. Sistem kontrol berhasil menentukan kontactor mana yang perlu diberi daya untuk memindahkan lift ke lantai yang diinginkan. Sistem mampu mengontrol motor pintu keamanan lift untuk menutup pintu saat lift perlu bergerak dan membuka pintu secara otomatis saat telah mencapai lantai yang diperlukan.
Demo Video:
1.1 Pengkabelan Motor 3 Phase
Motor 3 phase digunakan dalam aplikasi ini karena membutuhkan motor yang kuat dan mampu menahan beban berat. Motor 3 phase diberi daya melalui daya 3 phase utama. Daya melalui utama ini mengalir melalui dua kontactor utama. Saat kontactor pertama dihidupkan dan kontactor kedua dimatikan, daya mengalir melalui kontactor pertama ke gulungan motor yang menggerakkan motor ke arah maju.
Saat kontactor kedua dihidupkan dan kontactor pertama dimatikan, daya mengalir melalui kontactor kedua ke gulungan motor yang menggerakkan motor ke arah mundur. Perhatikan bahwa pengkabelan berbeda untuk arah balik.
1.2 Deteksi Lantai
Untuk mendeteksi lantai tempat lift saat ini berada, digunakan limit switch. Saat lift bergerak naik atau turun, limit switch akan tertutup dan terbuka pada setiap lantai. Saat lift berada pada lantai tertentu, limit switch pada lantai tersebut tertutup, memberikan indikasi kepada mikrokontroler tentang lantai tempat lift berada. Saat lift bergerak, limit switch terbuka, memberikan indikasi kepada mikrokontroler bahwa lift sedang bergerak.
Transisi dari sinyal rendah ke tinggi yang dihasilkan oleh limit switch saat lift melewati lantai terjadi dalam waktu sangat singkat dan seringkali terlalu cepat untuk terdeteksi oleh mikrokontroler. Limit switch dihubungkan ke sumber daya 5V DC dan keluaran dari terminal NO (Normally Open) dihubungkan ke pin IO mikrokontroler. Empat limit switch pada empat lantai mengirim data ke mikrokontroler. Hal ini memungkinkan mikrokontroler menentukan lantai tempat lift berada dengan memeriksa pin mana yang berubah dari rendah ke tinggi. Transisi status limit switch ditunjukkan dalam diagram di bawah ini:
Tugas yang sulit adalah memungkinkan mikrokontroler mendeteksi transisi dari rendah ke tinggi. Ada dua pendekatan untuk mengatasi masalah ini. Metode pertama adalah menentukan apakah pin limit switch berubah menjadi HIGH di dalam fungsi loop menggunakan kondisi if. Program pada dasarnya, sambil mengeksekusi kode lain, selalu memeriksa apakah pin berubah menjadi HIGH. Ini memakan banyak memori karena program terus-menerus mencari sinyal HIGH dari pin limit switch. Masalah lain adalah terkadang program mungkin melewatkan transisi ini karena fungsi loop sedang mengeksekusi kode lain saat transisi terjadi. Untuk menghindari masalah ini, digunakan Interrupts. Interrupts pada dasarnya menjeda eksekusi kode dan mengeksekusi fungsi terpisah saat kondisi interrupt tertentu terpenuhi. Ini ideal untuk operasi lift. Saat pin limit switch berubah dari rendah ke tinggi, fungsi interrupt dieksekusi dan fungsi ini memeriksa apakah lift berada pada lantai saat ini dan menghentikan lift atau mengizinkannya bergerak lebih jauh. Karena program dipaksa untuk mengeksekusi fungsi interrupt saat limit switch dihidupkan, sistem dapat memastikan program tidak sengaja melewatkan deteksi lantai. Mikrokontroler yang digunakan untuk aplikasi ini adalah Arduino Mega 2560 yang memiliki 6 pin digital yang dapat digunakan untuk interrupts, yang ideal untuk keempat lantai. Parameter pertama untuk attachInterrupt adalah nomor interrupt. Biasanya Anda harus menggunakan digitalPinToInterrupt(pin) untuk menerjemahkan pin digital asli ke nomor interrupt tertentu. Misalnya, jika Anda terhubung ke pin 3, gunakan digitalPinToInterrupt(3) sebagai parameter pertama untuk attachInterrupt. Penting juga untuk dicatat bahwa fungsi delay() tidak akan berfungsi di dalam fungsi yang dieksekusi oleh Interrupt Service Routine (ISR).
Diagram di atas menunjukkan cara limit switch terhubung ke MCU. Pin-pin pada MCU dihubungkan melalui resistor pull down. Resistor ini menarik pin MCU ke ground untuk memastikan bahwa pembacaan tegangan LOW diterima oleh MCU saat limit switch dalam keadaan terbuka. Konfigurasi resistor ditunjukkan dalam diagram di bawah ini.
1.3 Kontrol Motor Naik dan Turun
Dua relay DC 12V digunakan untuk mengalihkan daya AC ke kontactor motor yang mengontrol arahnya (Naik atau Turun). Rangkaian yang dirancang menggunakan Multisim ditunjukkan dalam diagram di bawah ini:
Salah satu ujung coil kontactor dari kedua relay dihubungkan ke sumber daya 12V DC melalui transistor PNP. Alasan utama melakukan hal ini adalah untuk memastikan bahwa motor tidak diberikan daya sampai pintu lift tertutup. Setelah pintu lift tertutup, output pin DoorSwitch ke gate transistor PNP ditarik ke ground, memastikan PNP menyala untuk memberikan daya VCC ke kedua relay. Oleh karena itu, relay tidak menyala bahkan jika sinyal MotorUp atau MotorDown HIGH. Ujung lain dari coil relay ditarik ke ground melalui transistor NPN. Sinyal MotorUp dihasilkan dari MCU. Saat sinyal MotorUp HIGH, transistor NPN pertama diaktifkan dan menarik kontak coil lainnya ke ground untuk menyelesaikan rangkaian untuk memberi daya ke coil Up Relay sehingga memberi daya ke motor. Metode yang sama digunakan untuk mengaktifkan Down Relay. Alasan menggunakan transistor untuk mengalihkan relay adalah:
Kedua relay memiliki coil 12VDC, oleh karena itu perlu menggunakan transistor PNP untuk mengalihkan sisi tinggi (12V) bagian coil karena MCU hanya mampu menghasilkan 5V yang tidak cukup untuk menyalakan coil relay.
Transistor dapat digunakan untuk menyalakan relay dengan menggunakan arus minimal dari MCU, karena arus kecil melalui basis transistor mengaktifkannya. Ini menghemat daya pada MCU saat perlu mengalihkan relay.
Ini juga mengisolasi MCU dari arus balik yang dapat mengalir kembali ke pin MCU yang dapat merusak MCU.
1.3.1 Flyback diode untuk perlindungan tambahan
Flyback diode dipasang di seluruh kontak coil relay untuk memastikan bahwa arus balik memiliki jalur untuk mengalir saat coil dihidupkan dan dimatikan. Beban induktif seperti coil dalam relay menciptakan lonjakan tegangan tiba-tiba saat pasokan arus tiba-tiba terganggu. Ini menambahkan perlindungan ekstra bagi MCU. Diagram di bawah ini menunjukkan cara menghubungkan flyback diode di seluruh kontak kontactor relay.
1.3.2 Kontrol input pengguna
Pengguna mengontrol operasi lift melalui tombol lantai. Terdapat empat tombol push lantai, saat ditekan memberikan indikasi kepada mikrokontroler bahwa lift perlu dibawa ke lantai yang diinginkan.
Tombol push saat ditekan sementara menciptakan sinyal HIGH dan kemudian sinyal LOW saat pengguna melepaskan tombol. Tugas mikrokontroler adalah mengidentifikasi sinyal HIGH dari tombol lantai yang ditekan oleh pengguna. Tugas tertentu ini tidak perlu ditangani melalui interrupt. Asal pengguna menekan tombol dalam waktu yang cukup lama, MCU mampu mendaftarkan sinyal dari tombol. Tugas selanjutnya mikrokontroler adalah menilai apakah akan menyalakan motor Naik atau Turun tergantung pada input pengguna dan lantai saat ini lift.
Dengan pemrograman cerdas melalui mikrokontroler, kita dapat menghilangkan perangkat keras tambahan yang akan diperlukan jika sistem dirancang sepenuhnya melalui logika dan analog. Sistem lift sebelumnya membutuhkan switch arah tambahan seperti yang ditunjukkan dalam diagram di bawah ini untuk memungkinkan sistem mengidentifikasi arah lift sedang berjalan (Naik atau turun).
Namun dengan merancang algoritma untuk menyimpan lantai saat ini lift dalam variabel dan membandingkannya dengan input dari pengguna, memungkinkan sistem untuk sepenuhnya menghilangkan switch arah untuk menentukan arah lift harus bergerak untuk mencapai lantai yang diinginkan. Misalnya: Dalam diagram koneksi input dan deteksi lantai ke MCU yang ditunjukkan di atas, lift memberikan indikasi kepada MCU bahwa berada pada lantai kedua melalui Pin 3. Kemudian pengguna menginput dengan menekan tombol lantai keempat. MCU menerima perintah ini dan membandingkan kedua input. Karena input dari pengguna, "4" lebih besar dari input dari limit switch, "2", MCU mengirim sinyal melalui pin MotorUp untuk mengaktifkan transistor untuk memberi daya ke relay Naik.
Saat lift bergerak naik, variabel lantai saat ini dalam program diperbarui saat mencapai lantai ketiga. Segera limit switch terpicu, ia dibandingkan dengan nilai input dari pengguna yang dalam hal ini adalah "4" dan lagi membandingkan nilai ini dengan variabel lantai saat ini yang diperbarui untuk menentukan apakah lift telah mendekati lantai yang diinginkan. Setelah limit switch lantai keempat terpicu, MCU mengidentifikasi bahwa lift telah mendekati lantai keempat dan mengirim sinyal LOW melalui pin sinyal Motor Up untuk memutus daya ke motor agar tidak bergerak lebih jauh.
1.3.2 Isolasi kontrol dari input
Faktor penting lainnya adalah mengisolasi sisi kontrol DC mikrokontroler dari interferensi AC apa pun yang dapat mempengaruhi MCU melalui input sistem. Masalah yang saya hadapi karena saya tidak memiliki perangkat isolasi yang dipasang awalnya, interferensi AC yang berasal dari tubuh logam lift ditransfer ke MCU melalui limit switch. Meski limit switch beroperasi pada sumber daya terpisah DC, input dari limit switch langsung dikirim ke mikrokontroler, interferensi terjadi saat lift mulai bergerak dan karena interferensi AC ini, MCU tidak dapat dengan benar mengidentifikasi lantai tempat lift berada. Untuk mengatasi masalah ini, Optocoupler digunakan untuk setiap input untuk mengisolasi MCU dari interferensi luar.
Tujuan optocoupler adalah mentransfer sinyal input yang dihasilkan dari limit switch lantai ke MCU melalui LED dan fototransistor. Saat limit switch tertutup, LED dinyalakan dan cahaya masuk dari LED mengaktifkan gate fototransistor yang kemudian mentransfer sinyal HIGH ke MCU dengan sukses mengisolasi input dari luar dan MCU.