Daftar Isi:

Sensor Sentuh Resistif 5-Kawat: 10 Langkah
Sensor Sentuh Resistif 5-Kawat: 10 Langkah

Video: Sensor Sentuh Resistif 5-Kawat: 10 Langkah

Video: Sensor Sentuh Resistif 5-Kawat: 10 Langkah
Video: Cara buat kunci motor SENSOR SENTUH cuma modal Rp10.000 2024, November
Anonim
Sensor Sentuh Resistif 5-Kabel
Sensor Sentuh Resistif 5-Kabel

Halo halo!

Sudah lama sejak saya bekerja di situs ini dan tampaknya cukup banyak yang berubah! Saya akhirnya siap untuk kembali ke belakang kemudi untuk proyek lain, dan saya pikir inilah saatnya untuk mengubah segalanya sendiri!

Saya telah memikirkan untuk beberapa waktu sebuah proyek berdasarkan Plate and Ball 271828, tetapi saya harus banyak belajar tentang sensor dan teori kontrol sebelum selesai. Saya pikir selama saya belajar satu atau dua hal, saya mungkin membawa kalian bersama saya!

Untuk itu, tujuan saya untuk tutorial ini akan menjadi semacam hibrida antara tutorial saya yang lebih halus, dan catatan untuk proyek itu sendiri. Setiap tutorial individu akan menjadi satu langkah dalam perjalanan itu, dan akan menyertakan detail yang telah saya samarkan di masa lalu seperti pengembangan kode (bukan kode yang baru saja selesai) dan kesalahan langkah yang saya ambil di sepanjang jalan.

Saya sangat bersemangat untuk proyek baru ini, dan saya senang melihat seberapa baik kerjanya!

Hari ini kita hanya akan mendapatkan panel sentuh 5-Wire sederhana yang bekerja dengan DP-32.

Mari kita mulai!

Langkah 1: Apa yang Anda Butuhkan

Apa yang Anda Butuhkan
Apa yang Anda Butuhkan

Karena tutorial ini adalah tentang membuat satu sensor berfungsi, tidak banyak yang Anda perlukan selain mikrokontroler dan panel sentuh.

  • Sebuah mikrokontroler.

    Saya menggunakan DP32 saya dengan built-in bread-board karena membuat prototyping menjadi sangat sederhana

  • Berbagai macam kabel dan kabel.

    Saya bisa menggunakan kabel pita built-in panel sentuh, tetapi jika sobek maka seluruh panel tidak berguna. Sebagai gantinya, saya menggunakan kabel 6-kawat untuk mengurangi tekanan pada kabel bawaan

  • Panel sentuh resistif 5-kawat tituler!

    Saya memiliki panel sentuh resistif 4-kawat, tetapi kabel pita untuk itu putus

Dan itu saja!

Langkah 2: Apa itu Panel Sentuh Resistif 5-kawat?

Apa itu Panel Sentuh Resistif 5-kawat?
Apa itu Panel Sentuh Resistif 5-kawat?
Apa itu Panel Sentuh Resistif 5-kawat?
Apa itu Panel Sentuh Resistif 5-kawat?
Apa itu Panel Sentuh Resistif 5-kawat?
Apa itu Panel Sentuh Resistif 5-kawat?

Jika Anda telah membaca tutorial panel sentuh 4-kawat saya, Anda akan terbiasa dengan gagasan umum tentang sensor sentuh resistif, tetapi panel 5-kawat dan panel 4-kawat beroperasi sedikit berbeda.

Saya suka panel ini karena Anda dapat melihat semua jejak kawat, membuatnya mudah untuk melihat apa yang melakukan apa. Pada gambar pertama, saya telah mewarnai setiap jejak secara berbeda. Anda mungkin dapat melihat bahwa empat kabel (merah muda, kuning, oranye, dan ungu) masing-masing mengarah ke salah satu dari empat sudut. Kabel tengah (merah) menuju panel sensor fleksibel.

Pada gambar kedua, Kami telah mengatur dua dari empat kabel (kanan atas dan kanan bawah) ke tegangan tinggi (ditunjukkan dengan warna merah), sedangkan dua lainnya (kiri atas dan kiri bawah) disetel ke rendah tegangan (ditunjukkan dengan warna biru). Ini menciptakan gradien tegangan di seluruh panel. Dalam hal ini, gradien berjalan di sepanjang sumbu X, sehingga tegangan yang lebih tinggi mewakili posisi yang lebih tinggi di sepanjang sumbu X.

Saat kita menyentuhkan jari kita ke panel, itu menekan sensor fleksibel, menghubungkan ke suatu tempat di sepanjang gradien sumbu X. Sensor tegangan pada mikrokontroler kami dapat merasakan tegangan ini, dan memberi tahu Anda di mana pada sumbu X jari Anda menyentuh!

Pada gambar ketiga, Anda dapat melihat bagaimana konfigurasi berubah untuk memungkinkan kita merasakan sepanjang sumbu Y. Dengan cara ini, kita dapat mengetahui di mana dalam ruang 2-D jari kita bersentuhan!

Langkah 3: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Seperti yang mungkin dapat Anda lihat pada gambar di atas, saya telah menghubungkan keempat sudut saya masing-masing ke pin keluaran digitalnya sendiri. Itu akan membiarkan saya mengaturnya secara individual ke tinggi atau rendah. Pin sensor saya terhubung ke pin input analog. Hal yang menyenangkan tentang layar sentuh 5-kawat, sebagai lawan dari 4-kawat, adalah Anda hanya memerlukan satu pin analog, sedangkan 4-kawat membutuhkan 2.

Pengkabelan Anda mungkin berbeda, tentu saja, tetapi pengkabelan saya adalah sebagai berikut:

Analog 0 (pin 6) terhubung ke Sensor (pin tengah)

Digital 3 terhubung ke Kanan Atas (pin paling atas)

Digital 2 terhubung ke Kiri Atas (pin paling atas kedua)

Digital 1 terhubung ke Kiri Bawah (pin paling bawah kedua)

Digital 0 terhubung ke Kanan Bawah (pin paling bawah)

Perlu dicatat lagi bahwa saya menggunakan kabel 6-kawat untuk menghubungkan mikrokontroler dan panel. Saya membiarkan pin atas kabel ini tidak terhubung.

Langkah 4: Pengembangan Perangkat Lunak

Pengembangan perangkat lunak
Pengembangan perangkat lunak

Di masa lalu, saya biasanya menjatuhkan file perangkat lunak lengkap untuk Anda gunakan, mungkin dengan panduan singkat tentang apa yang dilakukan semuanya. Saya tidak suka itu. Saya ingin seri ini tentang proyek yang sedang dalam pengembangan, dan untuk itu saya akan menyertakan pengembangan sebenarnya dari perangkat lunak ini dari awal hingga akhir.

Seperti biasa, saya akan menggunakan Arduino IDE, dengan inti Digilent. Setiap bagian akan menyertakan file kode, tangkapan layar, serta deskripsi tambahan dan apa yang ingin kami capai.

Untuk saat ini, saya memulai dengan program berkedip gaya penundaan sederhana, persis sama seperti yang Anda temukan di folder Contoh. Jika Anda membaca tajuk panjang yang saya tulis, Anda akan melihat bahwa setiap langkah dalam proses ini akan memodifikasi program untuk membawanya lebih dekat ke tujuan akhir kita.

Langkah 5: State Machine Blink

Mesin Negara Berkedip
Mesin Negara Berkedip

Langkah pertama saya adalah mengubah fungsi blink dari yang berdasarkan "delay()" menjadi state machine.

Bagi mereka yang tidak terbiasa beralih-pernyataan, cara kerjanya mirip dengan pernyataan if. Yang ini (dalam kotak oranye) menguji variabel "status" kami (yang dimulai dari 0). Kemudian melompat ke kasus untuk keadaan kita saat ini. Anda akan melihat bahwa case 0 dan 2 bertanggung jawab untuk menyalakan dan mematikan LED (masing-masing), sedangkan case 1 dan 3 bertanggung jawab untuk menunggu di antara sakelar.

Langkah 6: Tombol Berkedip

Tombol Berkedip
Tombol Berkedip
Tombol Berkedip
Tombol Berkedip
Tombol Berkedip
Tombol Berkedip

Selanjutnya, saya ingin tombol itu digunakan untuk mengedipkan lampu. Alih-alih memperumit ini, saya hanya memindahkan semua status satu per satu (status 0 menjadi status 1, dll.). Saat melakukan ini, berhati-hatilah untuk meningkatkan status keluar serta status itu sendiri (lihat gambar 3).

Saya juga menghapus status "tunggu" kedua. Itu berarti tombol menyalakan lampu selama satu detik, dan Anda dapat menekan tombol lagi segera setelah mati.

Perlu dicatat bahwa sistem ini secara otomatis mendebounce tombol untuk kita, karena kita harus menunggu LED mati sebelum kembali ke keadaan 0 di mana tombol dapat memicu siklus lagi.

Langkah 7: Komunikasi Serial

Komunikasi Serial
Komunikasi Serial
Komunikasi Serial
Komunikasi Serial

Pembaruan ini sangat kecil. Yang ingin saya lakukan hanyalah membuat koneksi Serial dan mengirim pesan. Pada gambar pertama, Anda dapat melihat bahwa saya memulai Serial di fungsi setup(). Di dalam mesin status kami, saya menambahkan baris ke status 1 dan 3 yang akan mengirim pesan sederhana ke komputer melalui serial.

Langkah 8: Membaca Koordinat

Membaca Koordinat
Membaca Koordinat
Membaca Koordinat
Membaca Koordinat
Membaca Koordinat
Membaca Koordinat
Membaca Koordinat
Membaca Koordinat

Ada baiknya langkah terakhir itu mudah, karena yang ini doozy.

Untuk memulai, saya telah menambahkan variabel untuk panel sentuh kami, termasuk beberapa variabel waktu khusus untuk panel sentuh dan tombol kami. Anda akan melihat alasannya sebentar lagi.

Saya telah sepenuhnya menulis ulang state-machine. Agak membingungkan untuk melihat kodenya, jadi saya menyertakan diagram blok yang seharusnya menggambarkan apa yang telah dilakukan.

Hal-hal yang perlu diperhatikan: Ada tiga langkah "menunggu" sekarang. Satu untuk setiap konfigurasi panel sentuh, untuk membiarkan voltase menetap sebelum melakukan pengukuran, dan satu lagi untuk memberi waktu tombol untuk memantul dengan benar. Langkah-langkah menunggu ini adalah alasan mengapa saya ingin memberikan tombol dan panel sentuh variabel waktu mereka sendiri.

Catatan: Konstanta DEBOUNCE_TIME mungkin sedikit rendah. Jangan ragu untuk meningkatkannya.

Langkah 9: Membersihkan

Membersihkan
Membersihkan
Membersihkan
Membersihkan
Membersihkan
Membersihkan

Kami telah sampai pada versi terakhir dari kode untuk proyek ini!

Untuk memulainya, saya telah menambahkan fungsi yang disebut loop_diff() untuk menghitung waktu yang telah berlalu. Jam internal untuk DP32 adalah panjang yang tidak ditandatangani dan, meskipun sangat tidak mungkin, ada kemungkinan bahwa jam mungkin berulang selama runtime kode ini*. Dalam hal ini, cukup dengan mengurangi waktu saat ini dari waktu yang disimpan dalam btn_time atau panel_time akan memberi kita sesuatu yang aneh, jadi saya menulis loop_diff() untuk mendeteksi kapan loop terjadi, dan berperilaku sesuai.

Saya juga melakukan sedikit pembersihan kecil. Saya telah menghapus variabel "state_time" yang sekarang tidak digunakan. Saya telah beralih dari tag LED_BUILTIN (yang merupakan standar Arduino) ke tag PIN_LED1 (yang merupakan standar untuk chipKit dan DP32). Saya juga telah menghapus semua pesan melalui Serial tentang memulai dan mengakhiri proses, yang membuat data kami melalui Serial jauh lebih bersih.

* Saya melakukan matematika bertahun-tahun yang lalu, dan saya pikir untuk fungsi millis() itu akan membutuhkan waktu seperti seminggu runtime konstan sebelum variabel akan berulang.

Langkah 10: Pikiran Terakhir

Pikiran Akhir
Pikiran Akhir

Dan itu saja!

Jika Anda telah mengikuti, Anda sekarang harus memiliki panel sentuh yang berfungsi yang terhubung ke mikrokontroler Anda! Ini adalah proyek kecil, tapi itu bagian dari proyek yang lebih besar. Saya sedang mengerjakan sesuatu seperti Plate and Ball 271828, dan perjalanan saya masih panjang sebelum itu terjadi. Saya akan mencoba membawa Anda bersama untuk seluruh proses, dan setiap bagian harus menjadi proyek kecilnya sendiri.

Ini adalah proses pembelajaran bagi saya, jadi jangan ragu untuk meninggalkan pemikiran dan saran Anda di komentar di bawah.

Terima kasih, dan sampai jumpa lagi!

Direkomendasikan: