Bagaimana Rotary Encoder Bekerja Dengan Arduino!
Rotary encoder adalah perangkat input yang bagus untuk proyek apa pun seperti menu printer 3D. Jadi dalam tutorial ini, kita akan belajar bagaimana rotary encoder bekerja dan bagaimana menggunakannya dengan Arduino.
Jadi mari kita mulai!
Langkah 1: Tonton videonya!
Jika Anda tidak ingin membaca semua hal, Anda dapat menonton video saya, itu akan jauh lebih mudah untuk dipahami.
Langkah 2: Ikhtisar

Rotary encoder, juga disebut encoder poros, adalah perangkat elektro-mekanis yang mengubah posisi sudut atau gerakan poros atau gandar menjadi sinyal keluaran analog atau digital.
Ada dua jenis utama rotary encoder
1) Absolute - Output dari encoder absolut menunjukkan posisi poros saat ini, menjadikannya transduser sudut.
2) Incremental - Output dari encoder inkremental memberikan informasi tentang gerakan poros, yang biasanya diproses di tempat lain menjadi informasi seperti posisi, kecepatan, dan jarak.
Catatan: Salah satu yang kami gunakan dalam proyek kami adalah tipe inkremental sehingga kami akan fokus pada hal itu.
Langkah 3: Apa itu Rotary Encoder Incremental?

Encoder tambahan akan segera melaporkan perubahan posisi (Searah & berlawanan arah jarum jam), yang merupakan kemampuan penting dalam beberapa aplikasi. Namun, itu tidak melaporkan atau melacak posisi absolut. Akibatnya, sistem mekanis yang dipantau oleh enkoder tambahan mungkin harus dipindahkan ke titik referensi tetap untuk menginisialisasi pengukuran posisi.
Langkah 4: Konstruksi & Bekerja









Satu saya telah datang di papan breakout ini yang sudah memiliki resistor pull-up yang diperlukan di atasnya.
Ini memiliki lima pin - Jam, Data, Switch, Vcc, GND
Konstruksi:
Kenop yang kami putar terhubung secara internal ke disk (Pic - 2). Jika kita memutar searah jarum jam atau berlawanan arah jarum jam, itu akan bergerak sesuai. Bagian abu-abu adalah GND dan titik kontak Emas terhubung ke Vcc. Ada dua titik kontak yang ditempatkan pada jarak tertentu yang tidak lain adalah garis JAM dan DATA kami.
Kerja:
Saat kami memutar encoder kami, dua output akan berubah tergantung pada posisi encoder. Yang akan menghasilkan dua kereta pulsa.
Jika Anda melihat lebih dekat kedua sinyal akan 90 derajat keluar dari fase. Jika encoder berputar searah jarum jam maka CLOCK akan memimpin dan jika encoder berputar searah jarum jam maka DATA akan memimpin.
Dan melihat perubahan keadaan untuk searah jarum jam dua sinyal akan memiliki nilai yang berlawanan dan untuk nilai yang berlawanan arah jarum jam.
Dan sekarang jika kita memprogram Arduino kita sesuai kita bisa membuatnya bekerja dengan proyek kita.
Langkah 5: Pemrograman



Contoh 1: (Counter.ino)
Sekarang dalam contoh ini, CLK terhubung ke pin 3, DT ke 4 dan SW ke 5, maka kami memiliki beberapa variabel untuk menyimpan data. Di bagian pengaturan kosong CLK, DT dan SW ditetapkan sebagai input dan kemudian memulai perintah serial dan di sini menyimpan posisi saat ini dalam keadaan terakhir
Di bagian void loop terlebih dahulu, kita membaca keadaan saat ini dari jam dan menggunakannya lagi untuk memeriksa apakah sudah berubah.
Jika status! = Status terakhir berarti telah mengubah posisi. Dan jika data! = Status maka CW lain CCW yang akan menambah atau mengurangi counter sesuai.
Kemudian menggunakan cetak serial mencetak variabel penghitung. Dan jika sakelar yang ditekan penghitung akan diatur ulang ke 0 dan mencetaknya, pada akhirnya, masukkan status ke status terakhir
Contoh 2: (LEDBrightness.ino)
Dalam contoh ini, saya telah meletakkan nilai penghitung di fungsi tulis analog dan menggunakan fungsi kendala untuk membatasi kemarahan antara 0-255 agar dapat berfungsi
Catatan: lebih baik jika Anda membuka kode di Arduino IDE dan membacanya sekali
Lampiran
Unduh Counter.ino Unduh LEDBrightness.ino
Langkah 6: Terima Kasih!
Lihatlah JLCPCB
$ 2 PCB Prototype (10pcs, 10 * 10cm): //jlcpcb.com
Itu saja jika Anda menyukai pekerjaan saya
Jangan ragu untuk memeriksa saluran YouTube saya untuk hal-hal yang lebih hebat: //www.youtube.com/c/Nematics_lab
Anda juga dapat mengikuti saya di Facebook, Twitter dll untuk proyek yang akan datang
//www.facebook.com/NematicsLab/
//www.instagram.com/nematic_yt/
//twitter.com/Nematic_YT