Dalam dunia elektronika dan sistem otomatisasi, limit switch merupakan salah satu komponen yang sangat sering digunakan. Komponen ini banyak ditemukan pada mesin industri, robotika, printer 3D, conveyor otomatis, CNC, pintu otomatis, hingga berbagai project DIY berbasis Arduino. Fungsi utama limit switch adalah mendeteksi apakah suatu objek atau mekanisme telah mencapai titik atau batas tertentu.
Pada project Arduino, limit switch biasanya digunakan sebagai sensor pendeteksi posisi. Misalnya untuk mengetahui apakah sebuah pintu sudah tertutup sepenuhnya, apakah lengan robot sudah mencapai ujung gerakan, atau apakah motor harus berhenti karena sudah mencapai batas mekanisnya. Karena fungsinya yang sederhana tetapi sangat penting, limit switch menjadi salah satu komponen dasar yang wajib dipahami oleh pemula maupun maker elektronik.
Pada artikel ini, kita akan mempelajari cara menggunakan limit switch dengan Arduino UNO, mulai dari mengenal pinout, memahami cara kerja, melakukan wiring, hingga membaca status limit switch menggunakan program Arduino. Selain itu, kita juga akan menggunakan library ezButton agar proses pembacaan input menjadi lebih stabil melalui fitur debounce bawaan. Dengan menggunakan library tersebut, kode program menjadi lebih sederhana dan mudah dipahami, terutama bagi pemula.
Perangkat Keras yang Dibutuhkan
- Arduino UNO R3
- Kabel USB
- Breadboard
- Kabel jumper
- Limit Switch KW12-3
- Limit Switch V-153-1C25
- Limit Switch V-155-1C25
- Limit Switch V-156-1C25
- Heat shrink tube
- Soldering iron (opsional)
- Terminal screw (opsional)
Anda tidak harus menggunakan tipe limit switch yang sama persis. Hampir semua limit switch mekanik memiliki prinsip kerja dan konfigurasi pin yang mirip sehingga tutorial ini tetap dapat diterapkan pada jenis lain.
Mengenal Limit Switch
Limit switch adalah sakelar mekanik yang bekerja ketika bagian aktuatornya disentuh atau ditekan oleh objek tertentu. Ketika switch ditekan, kontak internal di dalamnya akan berubah status. Perubahan status inilah yang nantinya dibaca oleh Arduino sebagai input digital. Komponen ini sering digunakan sebagai sensor batas gerakan motor, sensor posisi mekanik, sensor keamanan, endstop printer 3D, sensor buka/tutup pintu, dan deteksi objek pada sistem otomatisasi. Karena bekerja secara mekanis, limit switch memiliki respons yang cepat dan cukup akurat untuk banyak aplikasi sederhana.
Jenis-jenis Limit Switch
Di pasaran terdapat berbagai bentuk dan ukuran limit switch. Beberapa tipe yang paling umum digunakan antara lain:
- KW12-3
- V-153-1C25
- V-155-1C25
- V-156-1C25
Beberapa limit switch memiliki tuas panjang, roller, atau tombol kecil di bagian aktuatornya. Pemilihan jenis biasanya disesuaikan dengan kebutuhan mekanik project.
Pinout Limit Switch
Sebagian besar limit switch memiliki tiga pin utama, yaitu:
- C (Common) → pin utama/common
- NO (Normally Open) → kontak terbuka saat switch tidak ditekan
- NC (Normally Closed) → kontak tertutup saat switch tidak ditekan
Pada penggunaan normal, biasanya kita hanya menggunakan pin C dan salah satu antara NO atau NC.
Jika menggunakan pin NO, maka switch baru akan terhubung ketika ditekan. Sebaliknya, jika menggunakan pin NC, koneksi justru aktif saat switch belum ditekan.
Cara Kerja Limit Switch
Cara kerja limit switch sebenarnya cukup sederhana. Ketika aktuator pada switch ditekan, kontak internal di dalam switch berubah posisi.
Pada mode Normally Open (NO):
- Saat belum ditekan → koneksi terbuka
- Saat ditekan → koneksi tertutup
Pada mode Normally Closed (NC):
- Saat belum ditekan → koneksi tertutup
- Saat ditekan → koneksi terbuka
Arduino kemudian membaca perubahan kondisi tersebut sebagai sinyal digital HIGH atau LOW. Pada tutorial ini, kita menggunakan konfigurasi INPUT_PULLUP karena lebih sederhana dan tidak memerlukan resistor eksternal tambahan.
Mengapa Menggunakan INPUT_PULLUP?
Arduino sebenarnya memiliki resistor pull-up internal yang dapat diaktifkan melalui kode program. Dengan metode ini, pin input akan berada pada kondisi HIGH saat switch tidak ditekan, dan pin berubah menjadi LOW saat switch ditekan. Keuntungan menggunakan INPUT_PULLUP yaitu wiring lebih sederhana, tidak perlu resistor tambahan, lebih praktis untuk pemula, dan mengurangi risiko floating input. Floating input adalah kondisi ketika pin input Arduino tidak memiliki tegangan referensi yang jelas sehingga pembacaan menjadi tidak stabil.
Wiring Diagram
Hubungkan pin C limit switch ke GND Arduino, dan pin NO limit switch ke pin digital Arduino, misalnya pin 7. Ketika switch ditekan, pin Arduino akan terhubung ke GND, dan Arduino membaca kondisi LOW. Untuk penggunaan permanen atau project yang sering bergerak, disarankan menggunakan solder dan heat shrink tube agar sambungan lebih kuat dan aman.
Mengenal Debounce pada Limit Switch
Karena limit switch merupakan komponen mekanik, kontak internalnya tidak langsung stabil ketika ditekan. Saat aktuator menyentuh kontak, sering terjadi getaran kecil yang menyebabkan perubahan HIGH dan LOW berlangsung sangat cepat dalam waktu singkat. Fenomena ini disebut bouncing.
Akibat efek bouncing, satu kali tekanan tombol dapat terbaca beberapa kali oleh sistem sehingga input menjadi tidak akurat. Kondisi ini juga dapat membuat sensor terlihat tidak stabil dan menyebabkan sistem otomatisasi mengalami error atau bekerja tidak sesuai perintah. Oleh karena itu, digunakan teknik debounce untuk mengurangi gangguan tersebut agar pembacaan tombol menjadi lebih stabil dan akurat.
Menggunakan Library ezButton
Melakukan debounce secara manual sebenarnya memungkinkan, tetapi kode program yang dibuat bisa menjadi cukup rumit, terutama jika menggunakan banyak switch sekaligus. Oleh karena itu, pada tutorial ini digunakan library ezButton untuk mempermudah proses pembacaan switch pada Arduino. Library ezButton dapat menangani debounce secara otomatis, membaca status switch dengan lebih mudah, mendeteksi perubahan status switch, serta membantu menyederhanakan kode program. Karena penggunaannya lebih praktis dibanding membuat sistem debounce manual, library ini sangat cocok digunakan oleh pemula dalam project Arduino.
Kode Program Arduino - Limit Switch
Berikut contoh program sederhana untuk membaca status limit switch menggunakan library ezButton.
#include <ezButton.h>
ezButton limitSwitch(7); // limit switch terhubung ke pin 7
void setup() {
Serial.begin(9600);
// mengatur debounce time
limitSwitch.setDebounceTime(50);
}
void loop() {
// wajib dipanggil
limitSwitch.loop();
// mendeteksi perubahan status
if(limitSwitch.isPressed())
Serial.println("Limit switch: UNTOUCHED -> TOUCHED");
if(limitSwitch.isReleased())
Serial.println("Limit switch: TOUCHED -> UNTOUCHED");
// membaca status saat ini
int state = limitSwitch.getState();
if(state == HIGH)
Serial.println("Limit switch: UNTOUCHED");
else
Serial.println("Limit switch: TOUCHED");
}
Penjelasan Program
Program dimulai dengan mengimpor library ezButton:
#include <ezButton.h>
Kemudian dibuat objek limit switch pada pin 7:
ezButton limitSwitch(7);
Pada fungsi setup(), komunikasi Serial diaktifkan:
Serial.begin(9600);
Lalu debounce time diatur menjadi 50 milidetik:
limitSwitch.setDebounceTime(50);
Di dalam loop(), fungsi berikut wajib dipanggil:
limitSwitch.loop();
Fungsi ini digunakan untuk memperbarui status switch dan menjalankan proses debounce internal. Selanjutnya program mendeteksi kapan switch ditekan, kapan switch dilepas, serta membaca status switch saat ini.
Langkah Pengujian
1. Rangkai limit switch sesuai wiring diagram
2. Hubungkan Arduino ke komputer menggunakan kabel USB
3. Buka Arduino IDE
4. Install library ezButton
5. Pilih board Arduino UNO
6. Pilih port COM yang sesuai
7. Upload program ke Arduino
8. Buka Serial Monitor
9. Tekan dan lepaskan limit switch
10. Perhatikan output pada Serial Monitor
Jika wiring dan program benar, maka status switch akan berubah sesuai kondisi switch.
Penerapan Limit Switch pada Project Arduino
Limit switch dapat digunakan pada berbagai project Arduino dan sistem otomatisasi. Komponen ini sering dimanfaatkan pada robot penghindar tabrakan, sistem pintu otomatis, elevator mini, mesin conveyor, printer 3D, CNC machine, hingga robot arm. Selain itu, limit switch juga banyak digunakan pada sistem keamanan, smart garage door, dan berbagai mesin otomatis sederhana untuk mendeteksi batas gerakan atau posisi tertentu. Karena memiliki ukuran kecil, harga yang terjangkau, serta mudah digunakan, limit switch menjadi salah satu sensor mekanik yang sangat populer dalam dunia elektronika dan embedded system.
Baca juga: Arduino DIP Switch - Cara Menggunakan DIP Switch dengan Arduino UNO
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino



0 on: "Arduino Limit Switch - Cara Menggunakan Limit Switch dengan Arduino UNO"