Proyek Pembuatan Roda Digital Detektor Gerakan Tanah Longsor

Dalam Proyek Arduino ini, kita akan mempelajari cara menghubungkan Rotary Encoder dengan Arduino untuk membuat roda detektor pengukur gerakan tanah longsor dan menampilkan panjang yang diukur pada layar LCD. Dan pelajari cara kerjanya.

Rotary Encoder

Apa itu Encoder Putar?

Encoder putar adalah perangkat input yang terlihat seperti potensiometer, tetapi mengeluarkan serangkaian pulsa, yang berbeda dari yang lain dan unik. Ketika kenop enkoder putar diputar searah jarum jam atau berlawanan arah jarum jam, tombol ini berputar dalam langkah-langkah kecil yang menghasilkan sinyal analog atau digital. Sinyal-sinyal ini ideal untuk mengontrol motor stepper, motor servo, Peredupan dan kecerahan lampu, menambah/mengurangi nilai digital, mengukur panjang dan banyak lagi.

Bagaimana cara kerja Rotary Encoder?

Rotary encoder adalah transduser elektromekanis, yang berarti mengubah gerakan mekanis menjadi pulsa listrik. Ini terdiri dari tombol, ketika diputar secara bertahap menghasilkan urutan pulsa, setiap langkah konduktif ditempatkan pada disk dengan panjang dan celah yang telah ditentukan. Ada banyak jenis encoders masing-masing dengan mekanisme kerjanya sendiri, yang telah kita pelajari di artikel sebelumnya, Sekarang karena kita menggunakan Arduino rotary encoder inkremental KY040 dalam tutorial ini mari kita pelajari tentangnya.

Struktur mekanik internal encoder ditunjukkan pada gambar di atas. Ini pada dasarnya dari bahan non konduktif disk (hitam) dan bantalan konduktif (celah putih) ditempatkan di permukaan disk itu. Bantalan konduktif ini ditempatkan pada interval yang sama secara teratur. Pin keluaran dipasang pada disk ini sehingga saat kenop diputar, bantalan konduktif menyentuh pin keluaran dan menghasilkan bentuk gelombang. Ada dua pin keluaran di sini, Keluaran A dan Keluaran B, seperti yang ditunjukkan pada gambar di atas.

Bentuk gelombang keluaran yang dihasilkan oleh pin keluaran A dan keluaran B masing-masing diwakili dalam warna biru tua dan biru langit seperti yang ditunjukkan pada gambar di atas. Ketika bantalan konduktif melakukan kontak dengan pin, itu menjadi tinggi, dan ketika bantalan konduktif dipindahkan dari pin, pin menjadi rendah untuk bentuk gelombang yang ditunjukkan di atas. Jadi dengan menghitung jumlah pulsa kita bisa menentukan berapa langkah perpindahannya.

Kita membutuhkan 2 pin dan 2 bentuk gelombang untuk menentukan arah putaran kenop. Jika kita hanya menggunakan satu, kita mungkin berakhir dengan gerakan saja tetapi kita tidak dapat menemukan arahnya. Jika Anda melihat kedua pulsa ini, Anda akan melihat bahwa keduanya berbeda fase 90°. Jadi saat kenop diputar searah jarum jam, keluaran A akan menjadi tinggi terlebih dahulu, dan saat kenop diputar berlawanan arah jarum jam, keluaran B akan menjadi tinggi terlebih dahulu.

Di beberapa titik dalam pendidikan kita, kita semua menggunakan penggaris untuk mengukur panjang atau jarak di atas kertas, tetapi dalam pekerjaan praktis ada pita pengukur untuk mengukur panjang yang lebih besar. Saat ini seiring berkembangnya teknologi bahkan ada perangkat seperti alat pengukur laser yang dapat mengukur panjang melalui sinar laser.

Dalam proyek ini, kita membangun roda Pengukur digital. Dengan menggunakan beberapa rumus matematika, kita dapat mengukur jarak dari satu titik ke titik lainnya, melalui putaran yang dilakukan roda. Rotary encoder terhubung ke roda untuk mengukur jarak dan mengirimkannya ke mikrokontroler untuk melakukan perhitungan matematis dan menampilkan nilai pada layar LCD.

  1. Komponen yang dibutuhkan:
  2. Mikrokontroler Arduino
  3. Encoder Rotary tambahan
  4. Roda
  5. Layar LCD 16X2 dengan adaptor I2C
  6. Tekan tombol
  7. Beberapa kabel penghubung

Diagram sirkuit Roda Pengukur Arduino

Sekarang hubungkan semua komponen yang diperlukan persis seperti yang ditunjukkan pada diagram rangkaian di bawah ini.

Seperti yang dapat Anda lihat dari diagram rangkaian di atas, Rotary encoder terhubung ke Arduino NANO kami menggunakannya karena ukurannya yang lebih kecil, Anda bahkan dapat menggunakan Arduino UNO jika Anda memilikinya.

Pin power + dan GND encoder masing-masing terhubung ke pin 5V dan GND Arduino. Dua pin keluaran CLK dan DT dari Encoder masing-masing terhubung ke pin D2 dan D3 Arduino karena D2 dan D3 adalah pin interupsi Arduino dan kami menggunakan fungsi Interupsi dalam kode, kami tidak boleh mengubah pin tersebut. Untuk mengetahui lebih lanjut tentang antarmuka ini secara detail, silakan lihat artikel kami: Rotary encoder dengan Arduino secara detail dengan kode contoh.

Roda dipasang pada poros enkoder sebagai kenop untuk memutarnya.

Pin catu daya VCC dan GND dari layar LCD terhubung ke pin 5V dan GND dari Arduino NANO. Pin I2C SDA dan SDA terhubung ke A4 dan A5 Arduino. Jika Anda tidak memiliki I2C yang terhubung, lihat artikel ini: Menghubungkan Layar LCD dengan Arduino

Tombol push terhubung ke pin D4 seperti yang ditunjukkan.

Bagaimana roda Pengukur Arduino bekerja?

Seperti yang kita ketahui, Rotary Encoder mengukur jumlah putaran dengan langkah-langkah, untuk mengukur jarak kita perlu mengubah putaran menjadi jarak yang ditempuh, untuk melakukan itu kita perlu memasang roda ke poros Encoder. Ketahuilah jarak yang ditempuh dihitung dengan keliling roda. Encoder Rotary yang berbeda memiliki jumlah langkah rotasi yang berbeda. Mari kita asumsikan N jumlah langkah, untuk mengetahui bahwa putar pembuat enkode dari 0 hingga 360 derajat dan periksa nilai posisinya. Baca artikel ini untuk mengetahui cara memeriksa posisi : periksa contoh posisi

Jadi, Keliling roda = 2 X π X R(Radius roda).

Jarak yang ditempuh untuk satu langkah Encoder = (2xπxR)/N.

Jadi dengan menggunakan rumus tersebut kita dapat menghitung jarak dengan mengetahui langkah rotasi yang ditempuh.

Baca juga: Kalkulator Pulse Per Mile dengan rumus

Kode program:

Sekarang saatnya mengunggah kode. menghubungkan Arduino ke PC tempat Arduino IDE diinstal. Pilih papan sebagai Arduino NANO atau yang pernah Anda gunakan dan pilih port yang benar dari menu Tools. Instal pustaka yang diperlukan dari pengelola Perpustakaan bawaan atau Anda dapat mengunduh versi terbaru dari tautan di bawah ini

Perpustakaan yang Diperlukan:

• Unduh LiquidCrystal_I2C – Tautan

Selanjutnya salin kode di bawah ini dan tempel di ruang kerja IDE dan tekan tombol unggah. Itu saja kodenya akan diunggah.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

// Compiled and tested with no errors

// DIY Measuring wheel using Arduino and Rotary encoder with reset button

// source – www.circuitschools.com

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

#define outputA 2  //CLK pin

#define outputB 3  //DT pin

#define rstbtn  4  //reset button pin

int counter = 0;

const float pi = 3.14; // Pi value

const int R = 7;  //Radius of the wheel from center to edge

const int N = 40; //no of steps for one rotation

float distance = 0;

void setup() {

// Initialize LCD

lcd.init();

lcd.backlight();

lcd.print (“CIRCUITSCHOOLS..”);

lcd. setCursor (0, 1);

lcd.print (“Measuring Wheel”);

delay(2000);

lcd.clear();

// Initialize encoder pins

pinMode(outputA, INPUT);

pinMode(outputB, INPUT);

pinMode(rstbtn, INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt(outputA), readEncoder, FALLING);

}

void readEncoder() {

int bValue = digitalRead(outputB);

if (bValue == HIGH) {

counter++; // Clockwise

}

if (bValue == LOW) {

counter–; // Counterclockwise

}

}

// Get the counter value, disabling interrupts.

// This make sure readEncoder() doesn’t change the value

// while we’re reading it.

int getCounter() {

int result;

noInterrupts();

result = counter;

interrupts();

return result;

}

void resetCounter() {

noInterrupts();

counter = 0;

interrupts();

}

void loop() {

distance = ((2*pi*R)/N) * getCounter();

lcd.setCursor(0, 0);

lcd.print(“Distance: in cms”);

lcd.setCursor(0, 1);

lcd.print(distance);

lcd.print(”        “);

if (digitalRead(rstbtn) == LOW) {

resetCounter();

}

}

Setelah mengunggah kode, periksa perangkat dengan memutar roda searah jarum jam dan anti jam untuk melihat apakah panjangnya bertambah atau berkurang.

arduino surveyor wheel menggunakan output rotary encoder pada layar LCD

Output Odometer DIY menggunakan Arduino:

Anda dapat memasang rotary encoder ini ke beberapa batang, dan memasang Arduino dan layar LCD yang ditenagai dari baterai 9Volt untuk menjadikan perangkat ini portabel seperti gambar di bawah ini.

roda pengukur dipasang pada papan kayu dengan arduino dan lcd

Saat Anda menggerakkan perangkat ke depan sambil menyentuhkan roda ke permukaan pengukur, LCD akan menunjukkan jarak, Saat Anda bergerak mundur, kurangi pengukuran. Anda dapat mengistirahatkan pengukuran dengan menekan tombol setel ulang. Anda juga dapat menambahkan sakelar di dekat baterai untuk MENGAKTIFKAN dan MENONAKTIFKAN perangkat. Untuk membuat antarmuka tampilan OLED, bukan LCD, silakan lihat artikel ini: Menghubungkan tampilan OLED dengan Arduino.

Perangkat ini juga akan berfungsi sebagai Odometer di sepeda dan mobil listrik DIY, tetapi Anda perlu menggunakan encoder Rotary yang bagus sebagai gantinya.

Alat Sederhana untuk Deteksi Dini Longsor

Longsor adalah bencana runtuhnya tanah akibat ketidakstabilan. Longsor terjadi di tanah tebing yang tidak terlalu stabil. Longsor bisa terjadi di musim hujan atau musim kemarau, tergantung pada sifat tanah. Longsor terjadi ketika gaya tarik bagian-bagian tanah tidak sanggup menahan gaya gravitasi. Jika ada pemukiman di atas atau di bawah tebing maka longsor dapat menimbulkan kerugian besar bagi penduduk yang tinggal di situ, sampai pada kehilangan nyawa.

Bencana alam kadang tidak dapat dicegah karena sering di luar kemampuan manusia. Energi yang dihasilkan sangat gbesar dan manusia tidak sanggup menahan/mengotrol energi tersebut. Namun, jika terjadinya bencana dapat diprediksi maka kerugian dapat ditekan. Ada waktu bagi manusia untuk menyelamatkan diri.

Saya yakin alat deteksi longsor sudah sangat banyak dibuat orang dan sudah dipasang di berbagai tempat. Namun, bencana longsor dengan kerugian besar masih sering kita dengar khususnya saat memasuki musim hujan. Mengapa hal tersebut dapat terjadi? Kemungkinannya sebagai berikut:

  1. Alat deteksi tidak rusak
  2. Alat deteksi tidak banyak sehingga ada beberapa daerah yang tidak dipasangi alat tersebut walaupun potensi longsor sangat tinggi. Inid isebabkan harga alat yang mungkin mahal.

Di sini saya merancang alat deteksi longsor yang cukup sederhana dan biaya murah. Bahkan penduduk umum dapat membuat sendiri.

Metode

Deteksi awal longsor yang saya maksudkan di sini adalah deteksi pada saat pertama kali tanah bergerak. Jika tanah mulai bergerak maka sirine di pemukiman berbunyi sehingga penduduk diinformasikan untuk segera bangun (jika sedang tidur) dan menyelamatkan diri.

Untuk deteksi ini tentu diperlukan sebuah sensor. Saya selalu berpikir sederhana. Di sini saya menggunakan bandul dengan beban dari bahan konduktor dan tali yang terbuat dari kawat konduktor. Di sekeliling beban bandul saya pasang sikat kawat yang jaraknya dari beban sangat dekat (sekitar 1 cm). Dalam keadaan tanah tidak bergerak maka beban dalam posisi vertikal dan tidak menyentuh sikat kawat.

Ketika tanah mulai bergerak, maka bagian pengait bandul yang berada di atas mulai bergeser miring. Akibatnya beban bandul bergeser dan menyentuh sikat kawat. Dengan demikian terjadi kontak secara listrik. Kontak inilah yang digunakan untuk menyalakan sirine. Gambar 1 adalah skema bandul yang dimaksud.

Diagram

Description automatically generated Gambar 1 Skema bandul yang digunakan untuk mendeteksi gerakan tanah.

Persoalan berikutnya adalah lokasi tebing kadang jauh dari pemukiman penduduk. Kalau sirine dipasang di tebing, mungkin tidak terdengar nyaring oleh penduduk karena jauh. Sirine sebaiknya berada di tempat pemukiman. Untuk maksud tersebut saya menggunakan transmisi gelombang radio.

Kontak antara beban dan sikat kawat digunakan untuk memancarkan gelombang radio ke receiver yang berada di pemukiman. Ketika receiver menerima gelombang tersebut maka sirine berbunyi. Agar sederhana, saya menggunakan pasangan transmitter dan receiver semote control seperti pada Gambar 2. Rangkaian tersebut dapat dibeli di olshop. Kontaknya beban dan sikat kawat diterjemahkan sebagai menekan salah satu tombol remote control.

Gambar 2 Pasangan transmitter dan receiver yang digunakan.

Receiver yang dipasang di pemukiman digunakan untuk menyalakan relay. Relay inilah yang digunakan untuk menghidup dan meatikan sirine.

Jadi prinsip kerjanya secara sederhana sebagai berikut:

  1. Dalam keadaan aman, kontak antara beban dan sikat kawat tidak terjadi. Tidak ada gelombang yang dipancarkan dari transmitter sehingga receiver tidak meng-ON-kan relay. Akibatnya sirine mati.
  2. Jika tanah bergerak maka bandul menjadi miring. Terjadi kontak antara beban dan sikat kawat sehinggatransmitter dipencet. Gelombang dipancarkan dari transmitter dan ditangkap oleh receiver. Receiver kemudian meng-ON-kan relay dan akibatnya sirine berbunyi.

Alat/Bahan

Alat atau bahan sebagian besar adalah pipa paralon. Kenapa paralon? Karena stabil jika kena air atau tanah.

Bandul tidak boleh sembarang bergerak. Bandul hanya boleh bergerak saat tanah bergerak. Maka bandul harus diamankan. Untuk maksud tersebut bandul saya simpan dalam paralon 3 inci kemudian ditutup rapat dan ditanam. Hanya dua kabel yang keluar dari paralon tersebut. Sikat kawat yang saya gunakan tampak pada Gambar 3 (a) dan beban yang digunakan adalah pemberat yang sering digunakan tukang batu untuk mengatur posisi vertikal tembol seperti pada gambar 3(b). Beban tersebut dibersihkan dari cat sekelilingnya sehingga menghasilkan kontak listrik dengan sikat kawat.

A picture containing wooden, wood, hard

Description automatically generated Gambar 3 Bahan yang digunakan untuk membuat bandul: (a) sikat kawat, (b) beban pemberat, (c) benang

Beban yang sudah dibersihkn beserta sikat kawat tampak pada Gambar 4. Sikat kawat dipasang di dasar paralon 3 inci dan menghadap ke atas. Beban tepat berada di lubang sikat kawat, digantung dengan kawat konduktor dan benang. Dalam kondisi aman (tanah tidak bergerak), posisi beban di tengah lubang sikat kawat tampak pada Gambar 5.

Gambar 4 Beban yang sudah dibersihkan dari cat dan sikat kawat

Gambar 5 Posisi beban di tengah sikat kawat dalam kondisi aman. Tidak terjadi kontak.

Bentuk lengkap bandul yang sudah dibuat di dalam paralon 3 inci tampak pada Gambar 6. Di situ ada dua kabel yang keluar. Kabel tersebut dihubungkan ke transmitter.

Gambar 6 Bandul yang dipasang dalam paralon 3 inci.

Berikutnya kita buat bagian pemancar. Kita tidak mengubah banyak dari transmitter yang asli. Hanya saja tombol D transmitter tersebut dihubungkan ke bandul sehingga penekanan tombol diganti dengan kontaknya beban dengan sikat kawat. Kita juga pasang antene luar untuk memperjauh jangkauan pancaran. Gambar 7 adalah transmitter yang kita gukan dengan 3 kabel yang keluar.

Gambar 7 Transmitter yang digunakan. Kabel merah adalah kabel antene dan dua kabel lainnya disambung ke bandul.

Untuk receiver kita gukanan apa adanya,. Hanya kaki D3 yang bersesuaian dengan tobol D pada transmitter kita gunakan sebagai input relay. Receiver dan relay tampak pada Gambar 8

Gambar 8 Receever dan relay

Transmitter dijalankan dengan baterei 12 volt, yaitu baterei bawaan. Receiver dan relay dihidupkan dengan tegangan 5 volt yang berasal dari charger hp. Transmitter dan receiver dipasang pada dop (penutup) paralon 3 inci. Gambar 9 adalah transmitter dan receiver yang siap dibungkus. Gambar 10 adalah rangkaian lengkap receiver yang seudah dihubungkan dengan catu daya dan sudah dipasangi antene eksternal.

Gambar 9 Transmitter dan receiver yang telah dirangkai.

Gambar 10 Receiver dalam bentuk rangkaian lengkap.

Setelah itu, semua komponen dimasukkan dalam  pipa paralon 3 inci dan ditutup rapat. Dengan demikian, alat tersebut tahan terhadap gangguan luar karena sudah kedap. Gambar 11 adalah tiga komponen yang sudah dibuat dan siap diuji.

Gambar 11 Tiga komponen yang sudah dibuat dan siap diuji.

Pengujian

Pengujian dilakukan di halaman rumah. Receiver dipasang di saung. Sebagai pengganti sirine saya gunakan lampu berwarna kuning. Transmitter dan bandul saya letakkan dari jarak sekitar 20 meter. Gambar 12 adalah bandul dan transmitter. Tampak dari jauh saung beserta receiver dan lampu kuning.

Gambar 12 Bandul dan transmitter

Kondisi tanah aman direpresentasikan oleh posisi bandul yang vertikal.

Posisi tanah bergerak direpresentasikan oleh posisi bandul yang miring.

Gambar 13 adalah penampakan receiver dan lampu saat bandul dalam posisi vertikal (tanah aman). Saya kemudian menyangga bandul dengan batu sehingga posisinya miring seperti pada Gamabar 14. Dalam kondisi ini lampu menyala seperti pada Gambar 15.

Gambar 13 Penampakan receiver dan lampu saat bandul dalam posisi vertikal (tanah aman)

Gambar 14 Bandul disangga sehingga miring (tanah bergerak).

A picture containing tree, outdoor, plant, garden

Description automatically generated Gambar 15 Lampu menyala saat bandul dalam keadaan miring.

Gambar 16 adalah skema pemasangan di lapangan. bandul ditanam di sekitar puncak tebing. Transmitter dipasang di tiang sekitar bandung. Keduanya dihubungkan dengan kabel. Receiver dan sirine berada di pemukiman yang jaraknya bisa mencapai 200 meter.

Diagram

Description automatically generated Gambar 16 Skema pemasangan di lapangan

Alat ini cukup murah dan mudah dibuat. Kalau dihitung-hitung, biaya pembuatan 1 set transmitter dan receiver tidak sampai 200 ribu. Dengan sifat itu maka alai ini cocok dipasang di sejumlah wilayah di Indonesia yang memiliki potensi gempa. Catu daya untuk transmitter dapat bertahan hingga 1 tahun. Jarak transmitter ke receiver (tebing ke pumkiman) dapat mencapai 200 meter. Kita dapat memasang sejumlah receiver untuk satu transmitter. Ini penting untuk menghindari kegagalan bunyi satu sirine. Ada sirine lain sebagai cadangan.