Isi kandungan:

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

Video: Sensor Sentuh Tahan 5-Kawat: 10 Langkah

Video: Sensor Sentuh Tahan 5-Kawat: 10 Langkah
Video: RUMAH BERASA SEPERTI HOTEL !! BURUAN BIKIN SENSOR SENTUH BUAT RUMAHMU !! 2024, November
Anonim
Sensor Sentuh 5-Wire Resistive
Sensor Sentuh 5-Wire Resistive

Hello Hello!

Sudah lama saya tidak bekerja di laman web ini dan nampaknya sudah banyak yang berubah! Saya akhirnya bersedia untuk kembali ke belakang untuk projek lain, dan saya rasa sudah tiba masanya untuk mengubah keadaan saya sendiri!

Saya telah memikirkan untuk beberapa waktu sebuah projek berdasarkan Plate and Ball 271828, tetapi banyak yang perlu saya pelajari mengenai sensor dan teori kawalan sebelum selesai. Saya berfikir bahawa sepanjang saya belajar satu atau dua perkara, saya mungkin akan membawa anda bersama saya!

Untuk tujuan itu, tujuan saya untuk tutorial ini adalah semacam kacukan antara tutorial saya yang lebih digilap, dan rekod untuk projek itu sendiri. Setiap tutorial individu akan menjadi satu langkah dalam perjalanan itu, dan akan merangkumi perincian yang telah saya sebutkan pada masa lalu seperti pengembangan kod (bukannya kod yang baru dilengkapkan) dan salah langkah yang saya ambil sepanjang perjalanan.

Saya sangat teruja untuk projek baru ini, dan saya gembira melihat sejauh mana ia berfungsi!

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

Mari kita mulakan!

Langkah 1: Apa yang Anda Perlu

Apa yang Anda Perlu
Apa yang Anda Perlu

Kerana tutorial ini adalah mengenai membuat satu sensor berfungsi, tidak banyak yang anda perlukan selain mikrokontroler dan panel sentuh.

  • Pengawal mikro.

    Saya menggunakan DP32 saya dengan papan roti terbina dalam kerana ia menjadikan prototaip sangat mudah

  • Kabel dan kabel pelbagai.

    Saya mungkin menggunakan kabel reben panel sentuh, tetapi jika ia robek maka keseluruhan panel tidak berguna. Sebagai gantinya, saya menggunakan kabel 6-wayar untuk mengurangkan tekanan pada kabel terbina dalam

  • Panel sentuh resistif 5-dawai titular!

    Saya mempunyai panel sentuh resistif 4-wayar, tetapi kabel pita untuknya patah

Dan itu sahaja!

Langkah 2: Apakah Panel Sentuh Tahan 5-wayar?

Apakah Panel Sentuh Tahan 5-wayar?
Apakah Panel Sentuh Tahan 5-wayar?
Apakah Panel Sentuh Tahan 5-wayar?
Apakah Panel Sentuh Tahan 5-wayar?
Apakah Panel Sentuh Tahan 5-wayar?
Apakah Panel Sentuh Tahan 5-wayar?

Sekiranya anda membaca tutorial panel sentuh 4-wayar saya, anda akan terbiasa dengan idea umum mengenai sensor sentuh tahan, tetapi panel 5-wayar dan panel 4-wayar beroperasi sedikit berbeza.

Saya suka panel ini kerana anda dapat melihat semua jejak wayar, memudahkan untuk melihat apa yang dilakukan apa. Pada gambar pertama, saya telah mewarnai setiap jejak dengan cara yang berbeza. Anda mungkin dapat melihat bahawa empat wayar (merah jambu, kuning, oren, dan ungu) masing-masing menuju ke salah satu dari empat sudut. Kawat tengah (merah) menuju ke panel sensor fleksibel.

Pada gambar kedua, Kami telah menetapkan dua dari empat wayar (kanan atas dan bawah-kanan) ke voltan tinggi (ditunjukkan dengan warna merah), sementara dua yang lain (kiri atas dan kiri bawah) diatur ke rendah voltan (ditunjukkan dengan warna biru). Ini mewujudkan kecerunan voltan di seluruh panel. Dalam kes ini, kecerunan berjalan di sepanjang paksi-X, jadi voltan yang lebih tinggi mewakili kedudukan yang lebih tinggi di sepanjang paksi-X.

Apabila kita menyentuh jari kita ke panel, yang menekan sensor fleksibel, menyambung ke suatu tempat di sepanjang kecerunan paksi-X. Sensor voltan pada mikrokontroler kami dapat merasakan voltan ini, dan memberitahu anda di mana pada paksi-X jari anda menyentuh!

Pada gambar ketiga, anda dapat melihat bagaimana konfigurasi berubah untuk membolehkan kita merasakan sepanjang paksi-Y. Dengan cara ini, kita dapat mengetahui di mana ruang 2-D jari kita menyentuh!

Langkah 3: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian

Seperti yang mungkin anda lihat dalam gambar di atas, masing-masing saya telah menghubungkan empat penjuru saya dengan pin output digital mereka sendiri. Itu akan membolehkan saya menetapkannya secara individu ke tahap tinggi atau rendah. Pin sensor saya disambungkan ke pin input analog. Perkara yang baik mengenai skrin sentuh 5-wayar, berbanding dengan 4-wayar, adalah bahawa anda hanya memerlukan satu pin analog, sedangkan 4-wayar memerlukan 2.

Pendawaian anda mungkin berbeza, tentu saja, tetapi pendawaian saya adalah seperti berikut:

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

Digital 3 bersambung ke Atas-Kanan (pin paling atas)

Digital 2 bersambung ke Atas-Kiri (pin paling atas kedua)

Digital 1 bersambung ke Bawah-Kiri (pin paling bawah kedua)

Digital 0 menyambung ke Bawah-Kanan (pin paling bawah)

Perlu diingat lagi bahawa saya menggunakan kabel 6 wayar untuk pergi antara mikrokontroler dan panel. Saya telah melepaskan pin bahagian atas kabel ini.

Langkah 4: Pembangunan Perisian

Pembangunan perisian
Pembangunan perisian

Pada masa lalu, saya biasanya akan meletakkan fail perisian yang telah siap untuk anda gunakan, mungkin dengan panduan ringkas mengenai semua yang dilakukan. Saya tidak suka itu. Saya mahu siri ini berkaitan dengan projek dalam pembangunan, dan untuk tujuan itu saya akan memasukkan pengembangan sebenar perisian ini dari awal hingga akhir.

Seperti biasa, saya akan menggunakan Arduino IDE, dengan inti Digilent. Setiap bahagian akan merangkumi fail kod, tangkapan layar, dan juga penerangan mengenai penambahan dan apa yang ingin kami capai.

Buat masa ini, saya memulakan dengan program kelewatan gaya kelewatan sederhana, sama seperti yang anda dapati dalam folder Contoh. Sekiranya anda membaca tajuk panjang yang saya tulis, anda akan melihat bahawa setiap langkah dalam proses ini akan mengubah program untuk menjadikannya lebih dekat dengan tujuan akhir kami.

Langkah 5: Nyatakan Mesin Berkelip

Mesin Negeri Berkelip
Mesin Negeri Berkelip

Langkah pertama saya adalah menukar fungsi kedipan dari satu berdasarkan "delay ()" ke mesin keadaan.

Bagi mereka yang tidak biasa menukar pernyataan, ia berfungsi sama dengan pernyataan if. Yang satu ini (dalam kotak oren) menguji pemboleh ubah "keadaan" kami (yang bermula pada 0). Kemudian ia beralih kepada keadaan semasa kita. Anda akan melihat bahawa kes 0 dan 2 bertanggungjawab untuk menghidupkan dan mematikan LED (masing-masing), sementara kes 1 dan 3 bertanggungjawab untuk menunggu antara suis.

Langkah 6: Butang Berkelip

Butang Berkelip
Butang Berkelip
Butang Berkelip
Butang Berkelip
Butang Berkelip
Butang Berkelip

Seterusnya, saya mahu butang itu digunakan untuk mengedipkan cahaya. Daripada terlalu rumit ini, saya hanya memindahkan semua keadaan ke bawah satu (keadaan 0 menjadi keadaan 1, dll.). Semasa melakukan ini, berhati-hati untuk menaikkan keadaan keluar dan juga keadaannya sendiri (lihat gambar 3).

Saya juga memadamkan keadaan "tunggu" kedua. Ini bermaksud bahawa butang menyalakan lampu selama satu saat, dan anda boleh menekan butang itu semula sebaik sahaja ia dimatikan.

Perlu diingat bahawa sistem ini secara automatik menurunkan butang untuk kita, kerana kita harus menunggu LED mati sebelum kembali ke keadaan 0 di mana butang dapat mencetuskan kitaran sekali lagi.

Langkah 7: Komunikasi Bersiri

Komunikasi Bersiri
Komunikasi Bersiri
Komunikasi Bersiri
Komunikasi Bersiri

Kemas kini ini sangat kecil. Yang saya mahu buat ialah mewujudkan sambungan Serial dan menghantar mesej. Pada gambar pertama, anda dapat melihat bahawa saya memulakan Serial dalam fungsi setup (). Di dalam mesin negara kita, saya menambah baris ke negeri 1 dan 3 yang akan menghantar pesanan ringkas ke komputer melalui siri.

Langkah 8: Koordinat Membaca

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

Bagus kerana langkah terakhir itu mudah, kerana ini adalah perkara yang tidak menyenangkan.

Untuk memulakan, saya telah menambahkan pemboleh ubah untuk panel sentuh kami, termasuk beberapa pemboleh ubah masa khusus untuk panel sentuh dan butang kami. Anda akan melihat mengapa sebentar lagi.

Saya telah menulis semula mesin negara sepenuhnya. Agak membingungkan melihat kodnya, jadi saya memasukkan rajah blok yang harus menggambarkan apa yang telah dilakukan.

Perkara yang perlu diperhatikan: Terdapat tiga langkah "menunggu" sekarang. Satu untuk setiap konfigurasi panel sentuh, untuk membiarkan voltan berhenti sebelum melakukan pengukuran, dan satu untuk memberi masa butang untuk melepaskan dengan betul. Langkah-langkah menunggu inilah sebabnya saya mahu memberikan butang dan panel sentuh pemboleh ubah masa mereka sendiri.

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

Langkah 9: Membersihkan

Membersihkan
Membersihkan
Membersihkan
Membersihkan
Membersihkan
Membersihkan

Kami telah sampai pada versi terakhir kod untuk projek ini!

Sebagai permulaan, saya telah menambahkan fungsi yang disebut loop_diff () untuk mengira masa yang berlalu. Jam dalaman untuk DP32 adalah panjang yang tidak ditandatangani dan, walaupun sangat tidak mungkin, ada kemungkinan jam itu mungkin akan bergelung pada masa waktu kod ini *. Dalam kes itu, hanya mengurangkan masa semasa dari masa yang disimpan dalam btn_time atau panel_time akan memberi kita sesuatu yang pelik, jadi saya menulis loop_diff () untuk mengesan kapan gelung berlaku, dan berkelakuan sewajarnya.

Saya juga melakukan sedikit pembersihan kecil. Saya telah membuang pemboleh ubah "state_time" yang sekarang tidak digunakan. Saya telah menukar dari tag LED_BUILTIN (yang merupakan standard Arduino) ke tag PIN_LED1 (yang standard untuk chipKit dan DP32). Saya juga telah membuang semua mesej melalui Serial mengenai memulakan dan menamatkan proses, yang menjadikan data kami melalui Serial jauh lebih bersih.

* Saya melakukan matematik bertahun-tahun yang lalu, dan saya fikir bahawa untuk fungsi milis (), ia memerlukan masa seperti seminggu waktu larian berterusan sebelum pemboleh ubah tersebut akan berubah.

Langkah 10: Pemikiran Akhir

Pemikiran Akhir
Pemikiran Akhir

Dan itu sahaja!

Sekiranya anda mengikuti, sekarang anda harus mempunyai panel sentuh berfungsi yang disambungkan ke mikrokontroler anda! Ini adalah projek kecil, tetapi merupakan sebahagian daripada projek yang lebih besar. Saya sedang berusaha untuk sesuatu seperti Plat dan Bola 271828, dan saya masih perlu menempuh jalan sebelum perkara itu berlaku. Saya akan berusaha membawa anda sepanjang proses, dan setiap bahagian mestilah projek kecilnya sendiri.

Ini adalah proses pembelajaran bagi saya, jadi silakan tinggalkan pendapat dan cadangan anda dalam komen di bawah.

Terima kasih, dan saya akan sampai jumpa lagi!

Disyorkan: