Tombol "Sentuh" ​​PCB

10

Apakah mungkin menggunakan papan PCB sebagai tombol? Saya berpikir untuk menggunakannya untuk menghidupkan curcuit yang seharusnya hanya diaktifkan, ketika pengguna memegangnya di tangannya.

Sebagai inspirasi, saya menggunakan bantalan yang digunakan pada tombol sentuh lunak di keyboard atau kalkulator:

masukkan deskripsi gambar di sini

Saya tahu bahwa tubuh manusia memiliki daya tahan yang cukup tinggi, jadi sirkuit apa yang cocok untuk mendeteksi input sentuhan? Hanya perangkat keras. Saya tidak ingin menggunakan mikrokontroler di sini.

mxcd
sumber
6
Maksud Anda sensor sentuh kapasitif?
PlasmaHH
@PlasmaHH Ini mungkin kemungkinan lain, tapi saya pikir sesuatu seperti memperkuat arus yang mengalir ketika menjembatani pad di atas dengan jari Anda, membuka sel untuk mengoperasikan MOSFET atau sesuatu
mxcd
1
Tergantung pada kebutuhan daya desain Anda, penginderaan kapasitif mungkin terlalu haus daya. Anda bisa lolos dengan 50Hz (mungkin). Jika Anda menyentuh gerbang mos, Anda mengaktifkan mos. Juga, Anda biasanya mematahkannya, jadi entah bagaimana itu harus dilindungi, tetapi ini adalah titik awal yang baik.
Vladimir Cravero

Jawaban:

12

Untuk alasan keandalan, saya tidak akan menggunakan desain gerbang terbuka dan mengandalkan kebisingan 50Hz. Ini mungkin bekerja, tetapi ide Anda untuk menggunakan jari yang disisipkan seharusnya bekerja dengan baik.

Resistensi kulit kering berkisar antara 1k dan 100k, jadi Anda bisa memikirkan transistor NMOS (temukan satu dengan perlindungan ESD) dan penurunan besar misalnya 1M ohm. Kemudian Anda dapat menggunakan jari sebagai penarik pull-up untuk mengaktifkan MOSFET.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Anda juga dapat menggunakan transistor bipolar (atau darlington), mereka kurang rentan terhadap cacat ESD, tetapi tidak dapat memasok arus besar pada output jika diperlukan sehingga Anda perlu buffer output.

Sensor kapasitif akan menjadi solusi alternatif, tetapi membutuhkan rangkaian yang lebih rumit.

Douwe66
sumber
2
Saya akan mempertimbangkan menambahkan resistor 10k antara katoda D1 dan persimpangan antara R1 dan sisi kanan sensor untuk membatasi arus sesaat ke gerbang M1 dari pelepasan statis dan membantu D1 melakukan tugasnya dengan memperlambat secara cepat ujung bawah. Jika Anda menemukan rangkaian ini sangat rentan terhadap kebisingan, kapasitor 100pF atau lebih di R1 dapat membantu - Anda harus membangunnya dan mencobanya!
stefandz
Poin bagus, saya akan menambahkannya ke diagram sirkuit
Douwe66
12

Dimungkinkan untuk menggunakan bantalan koneksi resistif seperti yang Anda tunjukkan, tetapi bantalan kapasitif umumnya lebih baik. Bantalan resistif meninggalkan koneksi langsung ke sirkuit terbuka ke luar. Karena itu mereka rentan terhadap kerusakan akibat pelepasan dan kebisingan statis.

Bantalan kapasitif adalah metode yang lebih baik, meskipun mereka memerlukan sedikit lebih banyak firmware untuk merasakan, setidaknya jika Anda ingin melakukannya dengan baik. Perhatikan bahwa untuk mendapatkan kekebalan kebisingan yang bahkan belum sempurna, bantalan resistif memerlukan firmware juga. Hanya menghubungkan dua pembalut ke sesuatu yang sensitif, seperti gerbang FET, adalah ide yang buruk. Anda tidak akan dapat membatalkan mode umum dan kebisingan sekitar lainnya.

Berikut adalah tata letak papan kecil yang saya lakukan baru-baru ini hanya untuk meneliti tombol kapasitif:

Tutup bantalan adalah cakram kecil berdiameter 150 mil (3,8 mm) dan jika tidak dikelilingi oleh tanah pada lapisan atas. Mikrokontroler adalah PIC 16LF1786. Itu dan semua bagian lain yang bukan untuk berinteraksi langsung dengan pengguna dipasang di bagian bawah papan dua lapis ini.

PIC terus memindai bantalan. Ketika mendeteksi adanya perubahan pada bantalan yang ditekan / dilepaskan, bantalan akan mengirimkan pesan melalui port serial, memperbarui lampu di kanan atas, dan mengeluarkan bunyi bip pada pers.

Untuk pengujian, saya dapat meminta PIC secara teratur mengirimkan nilai-nilai internal untuk menekan setiap pad. Ini adalah plot dari kelima nilai indra mentah, selain keadaan digital sesuatu yang ditekan saat saya menekan setiap pad berturut-turut dengan jari saya:

Seperti yang Anda lihat, kekebalan kebisingan sangat luar biasa. Bahkan sinyal terlemah adalah lebih dari 300, sementara noise ± 2 atau lebih.

Jejak magenta berlabel "Ditekan" menunjukkan OR dari masing-masing tombol yang ditekan. Levelnya menunjukkan batas pers dan rilis. Ada banyak sinyal tambahan yang tidak digunakan dalam kasus ini. Ambang khusus ini diubah agar dapat mentolerir beberapa lapisan kertas di atas tombol.

Tentu saja ada beberapa penanganan garis tombol yang pintar dan pemrosesan, bahkan jika saya mengatakannya sendiri, tetapi jelas hasilnya dapat dicapai dengan mikrokontroler yang cukup sederhana.

Saya menggunakan ini dalam produk nyata di mana mikro yang sama juga mengelola tampilan karakter. Itu adalah subsistem antarmuka pengguna dasar yang saya rencanakan untuk digunakan kembali di beberapa produk mendatang. Ini antarmuka ke pengontrol sistem utama melalui port serial. Pengontrol utama mengirimkan perintah untuk menulis ke layar, dan menerima pesan tidak sinkron setiap kali keadaan tombol berubah.

Olin Lathrop
sumber
Apa satuan Ysumbu dalam plot Anda? Apakah bantalan hanya terhubung ke pin, atau apakah ada komponen lain yang terlibat?
Dmitry Grigoryev
1
@Dmitry: Sumbu Y menunjukkan ukuran "seberapa banyak tombol yang sedang disentuh" ​​internal. Ini diturunkan dari nilai A / D mentah, tetapi ada beberapa bacaan A / D yang terlibat, dan ada pemrosesan yang signifikan pada bacaan tersebut. Tidak ada upaya untuk menjaga mereka di unit tertentu, karena nilai-nilai ini relatif satu sama lain dan masuk ambang batas secara sewenang-wenang. Sangat kasar mereka berada dalam satuan diferensial sekitar 800 uV antara membaca. 350 berarti sekitar 280 mV, tetapi sekali lagi, tidak sesederhana itu.
Olin Lathrop
Jadi Anda mengendarai bantalan tinggi dan rendah, dan mengukur semacam tingkat pengisian / pengosongan menggunakan ADC?
Dmitry Grigoryev
1
@ Sentry: Saya mengendarai sesuatu yang lain tinggi dan rendah, kemudian mengukur perubahan langkah di bantalan. Tidak ada yang berbasis waktu selain memungkinkan cukup waktu penyelesaian untuk membaca.
Olin Lathrop