Penginderaan Kapasitif

10

Apakah ada cara agar saya dapat membuat Arduino atau Micro-controller lain mendeteksi perubahan kapasitansi?

Saya berpikir memiliki layar di pintu saya yang hanya menyala ketika Anda menyentuh pegangan pintu logam.

littlebirdceo
sumber

Jawaban:

11

Berikut ini adalah tutorial http://www.nerdkits.com/videos/halloween_capacitive_touch_sensor/

Sensor aktual yang digunakan untuk mendeteksi keberadaan tangan dijelaskan secara rinci dalam video, tetapi di sini adalah ikhtisar. Sensor kami beroperasi dengan prinsip yang sama dengan sensor sentuh kapasitif bekerja pada touchpad laptop Anda. Sensor sentuh kapasitif ini bekerja pada premis bahwa manusia kebanyakan adalah air. Ketika Anda mendekati medan listrik Anda mengubah kapasitansi cukup untuk diperhatikan oleh sensor.

Dalam sistem kami, kami membuat sirkuit RC dengan kapasitor dan resistor secara paralel. Kami menggunakan MCU untuk mengisi kapasitor hingga 5V (tegangan tinggi digital). Kemudian kita mengubah pin menjadi pin input, yang pada dasarnya memutus simpul itu. Ini memungkinkan kapasitor untuk melepaskan melalui resistor. Jumlah waktu yang dibutuhkan kapasitor untuk melepaskan akan terkait dengan nilai resistor dikalikan kapasitansi. Kami memilih nilai resistor yang cukup besar sehingga konstanta waktu RC cukup lama bagi kami untuk mengukur dengan MCU. Dalam hal ini 100K ohm bekerja dengan baik. Sensor dalam hal ini adalah dua lembar aluminium foil, satu terhubung ke pin MCU, dan satu lagi terhubung ke GND. Dua lembar ini menciptakan kapasitor yang sedang diisi dan dipakai oleh MCU kami. Ketika tangan Anda bergerak di antara dua lembar, itu mengubah medan listrik, dan karenanya kapasitansi alat foil timah kami. Kapasitor karenanya membutuhkan waktu lebih lama untuk dikeluarkan, dan itu terdeteksi oleh kode pada mikrokontroler kami!

clabacchio
sumber
6

Salah satu cara terbaik yang saya temukan untuk mengukur kapasitansi adalah dengan menggunakan sirkuit RC. Gunakan port I / O digital pada mikroprosesor untuk mengisi dan melepaskan sensor kapasitif melalui resistor tetap. Mulai timer ketika Anda memulai siklus pengisian / pengosongan. Kemudian gunakan komparator untuk mendeteksi ketika kapasitor telah terisi penuh / habis. Hentikan pengatur waktu ketika pembanding trip. Nilai yang disimpan dalam timer kemudian dapat digunakan untuk menghitung kapasitansi sensor.

mjh2007
sumber
1

Sensor sentuh kapasitif dapat dilakukan tanpa perangkat keras tambahan. Caranya adalah dengan mengaktifkan penarikan internal pin digital, dan menghitung siklus CPU yang diperlukan untuk menarik pin ke atas.

Kode dan penjelasan: http://playground.arduino.cc/Code/CapacitiveSensor

maxy
sumber
0

Saya lebih suka mengambil bagian analog dari pekerjaan dari mikrontroller dengan menggunakan kapasitor yang sedang diuji sebagai bagian dari osilator dan kemudian menggunakan controller untuk mengukur lebar puse. Ini adalah bagian tambahan, tetapi saya mendapatkan hasil yang lebih baik dengan cara ini.

Scott Seidman
sumber