Daftar Isi:
- Langkah 1: Apa yang Anda Butuhkan
- Langkah 2: Apa itu Panel Sentuh Resistif 5-kawat?
- Langkah 3: Pengkabelan
- Langkah 4: Pengembangan Perangkat Lunak
- Langkah 5: State Machine Blink
- Langkah 6: Tombol Berkedip
- Langkah 7: Komunikasi Serial
- Langkah 8: Membaca Koordinat
- Langkah 9: Membersihkan
- Langkah 10: Pikiran Terakhir
Video: Sensor Sentuh Resistif 5-Kawat: 10 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
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
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?
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
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
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
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
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
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
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
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
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:
Sentuh Lebih Sedikit Saklar Sentuh: 11 Langkah
Touch Less Touch Switch: Dalam situasi COVID-19 yang berlaku, memperkenalkan Antarmuka Pengguna bebas-sentuh untuk mesin publik untuk menghindari penyebaran pandemi di komunitas
Kain Resistif Paduan Kromium Cerdas: 6 Langkah
Smart Chromium Alloy Resistive Fabric: Musim panas akan segera berakhir (semoga, terima kasih pemanasan global), jadi inilah saatnya untuk mengeluarkan mantel Anda dan Smart Chromium Alloy Resistive Fabrics. Apa? Anda tidak punya? Nah sekarang Anda juga dapat memiliki syal pemanas listrik Anda sendiri
Tiga Sirkuit Sensor Sentuh + Sirkuit Pewaktu Sentuh: 4 Langkah
Tiga Sirkuit Sensor Sentuh + Sirkuit Pewaktu Sentuh: Sensor Sentuh adalah sirkuit yang AKTIF saat mendeteksi sentuhan pada Pin Sentuh. Ini bekerja secara sementara yaitu beban akan ON hanya untuk saat sentuhan dilakukan pada pin. Di sini, saya akan menunjukkan tiga cara berbeda untuk membuat sentuhan
SENTUH SWITCH - Cara Membuat Saklar Sentuh Menggunakan Transistor dan Breadboard: 4 Langkah
SENTUH SWITCH | Cara Membuat Saklar Sentuh Menggunakan Transistor dan Breadboard.: Sakelar sentuh adalah proyek yang sangat sederhana berdasarkan penerapan transistor. Transistor BC547 digunakan dalam proyek ini yang bertindak sebagai sakelar sentuh. PASTIKAN UNTUK MENONTON VIDEO YANG AKAN MEMBERI ANDA DETAIL LENGKAP TENTANG PROYEK
Tombol Sentuh Resistif Berlampu Nirkabel: 5 Langkah
Wireless Illuminated Resistive Touch Button: Ini adalah proyek sederhana dengan ide membuat tombol sentuh resistif yang mengintegrasikan RGB Led. Setiap kali tombol ini disentuh, itu akan menyala dan warna lampu dapat disesuaikan. Ini dapat digunakan sebagai tombol sentuh bercahaya portabel melalui