Dalam projek ini, kami akan membangunkan rangkaian yang menyeronokkan menggunakan sensor Force dan Arduino Uno. Litar ini menghasilkan bunyi yang berkaitan secara linear dengan daya yang dikenakan pada sensor. Untuk itu kita akan menghubungkan sensor FORCE dengan Arduino Uno. Di UNO, kita akan menggunakan ciri ADC 8 bit (Penukaran Analog ke Digital) untuk melakukan tugas.
Force Sensor atau Force Sensitive Resistor
Sensor FORCE adalah transduser yang mengubah rintangannya apabila tekanan di permukaan. Sensor FORCE tersedia dalam pelbagai saiz dan bentuk. Kami akan menggunakan salah satu versi yang lebih murah kerana kami tidak memerlukan banyak ketepatan di sini. FSR400 adalah salah satu sensor daya termurah di pasaran. Gambar FSR400 ditunjukkan dalam gambar di bawah. Mereka juga disebut perintang sensitif gaya atau FSR kerana rintangannya berubah mengikut daya atau tekanan yang dikenakan padanya. Apabila tekanan diterapkan pada perintang penginderaan daya ini, rintangannya berkurang, rintangan berbanding terbalik dengan daya yang dikenakan. Oleh itu, apabila tidak ada tekanan yang dikenakan, rintangan FSR akan sangat tinggi.
Sekarang penting untuk diperhatikan bahawa FSR 400 sensitif sepanjang panjangnya, kekuatan atau berat harus tertumpu pada labirin di tengah mata sensor, seperti yang ditunjukkan pada gambar. Sekiranya daya ditekankan pada waktu yang salah, peranti boleh merosakkan secara kekal.
Satu lagi perkara penting untuk diketahui bahawa, sensor dapat menggerakkan arus dari jarak tinggi. Oleh itu, ingat arus pemacu semasa memasang. Sensor juga mempunyai had daya iaitu 10 Newton. Oleh itu, kita boleh menggunakan berat badan hanya 1Kg. Sekiranya berat lebih tinggi daripada 1Kg digunakan, sensor mungkin menunjukkan beberapa penyimpangan. Sekiranya ia meningkat lebih dari 3Kg. sensor mungkin merosakkan secara kekal.
Seperti yang diberitahu sebelumnya, sensor ini digunakan untuk merasakan perubahan tekanan. Oleh itu, apabila berat dikenakan di atas sensor FORCE, rintangan diubah secara drastik. Rintangan berat FS400 ditunjukkan dalam grafik di bawah,
Seperti yang ditunjukkan dalam gambar di atas, rintangan antara dua kenalan sensor menurun dengan berat atau kekonduksian antara dua kenalan sensor meningkat. Rintangan konduktor tulen diberikan oleh:
Di mana, p- Ketahanan konduktor
l = Panjang konduktor
A = Kawasan konduktor.
Sekarang pertimbangkan konduktor dengan rintangan "R", jika ada tekanan yang berlaku di atas konduktor, kawasan pada konduktor menurun dan panjang konduktor meningkat akibat tekanan. Jadi dengan formula, rintangan konduktor harus meningkat, kerana rintangan R berkadar songsang dengan luas dan juga berkadar langsung dengan panjang l.
Jadi dengan ini untuk konduktor di bawah tekanan atau berat, rintangan konduktor meningkat. Tetapi perubahan ini kecil berbanding dengan rintangan keseluruhan. Untuk perubahan yang banyak, banyak konduktor disusun bersama. Inilah yang berlaku di dalam Force Sensor yang ditunjukkan dalam gambar di atas. Apabila melihat dengan teliti, seseorang dapat melihat banyak garis di dalam sensor. Setiap garis ini mewakili konduktor. Sensitiviti sensor berada dalam nombor konduktor.
Tetapi dalam hal ini rintangan akan berkurang dengan tekanan kerana bahan yang digunakan di sini bukan konduktor tulen. FSR di sini adalah peranti filem tebal polimer (PTF) yang kuat. Jadi ini bukan alat bahan konduktor tulen. Ini terbuat dari bahan, yang menunjukkan penurunan daya tahan dengan peningkatan kekuatan yang dikenakan pada permukaan sensor. Bahan ini menunjukkan ciri-ciri seperti yang ditunjukkan dalam grafik FSR.
Perubahan rintangan ini tidak ada gunanya kecuali kita dapat membacanya. Pengawal di tangan hanya dapat membaca kemungkinan voltan dan tidak kurang, untuk ini kita akan menggunakan litar pembahagi voltan, dengan itu kita dapat memperoleh perubahan rintangan sebagai perubahan voltan.
Pembahagi voltan adalah litar resistif dan ditunjukkan dalam rajah. Dalam rangkaian resistif ini kita mempunyai satu rintangan tetap dan rintangan pemboleh ubah yang lain. Seperti yang ditunjukkan dalam gambar, R1 di sini adalah rintangan tetap dan R2 adalah sensor FORCE yang bertindak sebagai rintangan. Titik tengah cabang dibawa ke pengukuran. Dengan perubahan R2, kita mempunyai perubahan di Vout. Oleh itu, kita mempunyai perubahan voltan dengan berat.
Perkara penting yang perlu diberi perhatian di sini ialah, input yang diambil oleh pengawal untuk penukaran ADC serendah 50µAmp. Kesan pemuatan pembahagi voltan berdasarkan rintangan ini penting kerana arus yang diambil dari Vout pembahagi voltan meningkatkan peratusan ralat meningkat, buat masa ini kita tidak perlu bimbang tentang kesan pemuatan.
Cara memeriksa Sensor FSR
Perintang penginderaan daya boleh diuji menggunakan multimeter. Sambungkan dua pin sensor FSR ke multimeter tanpa memberi kekuatan dan periksa nilai rintangan, ia akan sangat tinggi. Kemudian tekankan sedikit daya ke permukaannya dan lihat penurunan nilai rintangan.
Aplikasi Sensor FSR
Perintang pengesan daya digunakan terutamanya untuk membuat "butang" pengesan tekanan. Mereka digunakan dalam pelbagai bidang seperti sensor penghunian kereta, pad sentuhan tahan, hujung jari robot, anggota badan buatan, pad kekunci, sistem pronasi kaki, alat muzik, Elektronik Tertanam, Peralatan Pengujian dan Pengukuran, Kit Pembangunan OEM dan elektronik mudah alih, sukan. Mereka juga digunakan dalam sistem Augmented Reality dan untuk meningkatkan interaksi bergerak.
Komponen Diperlukan
Perkakasan: Arduino Uno, Bekalan kuasa (5v), Kapasitor 1000 uF, kapasitor 100nF (3 keping), perintang 100KΩ, Buzzer, perintang 220Ω, Sensor kekuatan FSR400.
PERISIAN: Atmel studio 6.2 atau Aurdino setiap malam
Diagram Litar dan Penjelasan Kerja
Sambungan litar untuk antara muka Force sensing Resistor dengan Arduino ditunjukkan dalam rajah di bawah.
Voltan merentasi sensor tidak linear sepenuhnya; ia akan menjadi bising. Untuk menyaring kebisingan, kapasitor ditempatkan di setiap perintang di litar pembahagi seperti yang ditunjukkan dalam gambar.
Di sini kita akan mengambil voltan yang disediakan oleh pembahagi (voltan yang mewakili berat secara linear) dan memasukkannya ke salah satu saluran ADC UNO. Selepas penukaran, kami akan mengambil nilai digital itu (mewakili berat badan) dan mengaitkannya dengan nilai PWM untuk mendorong bel.
Jadi dengan berat badan kita mempunyai nilai PWM yang mengubah nisbah tugasnya bergantung pada nilai digital. Semakin tinggi nilai digital semakin tinggi nisbah tugas PWM sehingga semakin tinggi kebisingan yang dihasilkan oleh buzzer. Oleh itu, kami mengaitkan berat badan dengan bunyi.
Sebelum pergi lebih jauh mari kita bincangkan ADC Arduino Uno. ARDUINO mempunyai enam saluran ADC, seperti yang ditunjukkan dalam gambar. Di mana satu atau semua itu boleh digunakan sebagai input voltan analog. UNO ADC mempunyai resolusi 10 bit (jadi nilai integer dari (0- (2 ^ 10) 1023)). Ini bermaksud bahawa ia akan memetakan voltan input antara 0 dan 5 volt menjadi nilai integer antara 0 dan 1023. Jadi untuk setiap (5/1024 = 4.9mV) seunit.
Di sini kita akan menggunakan A0 UNO.
Kita perlu mengetahui beberapa perkara.
|
Pertama sekali saluran UNO ADC mempunyai nilai rujukan lalai 5V. Ini bermakna kita dapat memberikan voltan input maksimum 5V untuk penukaran ADC di mana-mana saluran input. Oleh kerana beberapa sensor memberikan voltan dari 0-2.5V, dengan rujukan 5V, kita mendapat ketepatan yang lebih rendah, jadi kita mempunyai petunjuk yang memungkinkan kita mengubah nilai rujukan ini. Jadi untuk mengubah nilai rujukan yang kita miliki (“analogReference ();”) Buat masa ini kita membiarkannya sebagai.
Sebagai lalai, kami mendapat resolusi ADC papan maksimum iaitu 10 bit, resolusi ini dapat diubah dengan menggunakan instruksi ("analogReadResolution (bit);"). Perubahan resolusi ini sangat berguna untuk beberapa kes. Buat masa ini kami membiarkannya.
Sekarang jika syarat di atas ditetapkan ke lalai, kita dapat membaca nilai dari ADC saluran '0' dengan memanggil fungsi langsung "analogRead (pin);", di sini "pin" mewakili pin di mana kita menghubungkan isyarat analog, dalam hal ini akan menjadi "A0". Nilai dari ADC dapat dimasukkan ke dalam bilangan bulat sebagai “int SENSORVALUE = analogRead (A0); ", Dengan arahan ini nilai setelah ADC disimpan dalam bilangan bulat" SENSORVALUE ".
PWM Arduino Uno dapat dicapai pada salah satu pin yang dilambangkan sebagai "~" di papan PCB. Terdapat enam saluran PWM di UNO. Kami akan menggunakan PIN3 untuk tujuan kami.
analogWrite (3, NILAI); |
Dari keadaan di atas, kita boleh mendapatkan isyarat PWM secara langsung pada pin yang sesuai. Parameter pertama dalam tanda kurung adalah untuk memilih nombor pin isyarat PWM. Parameter kedua adalah untuk nisbah tugas menulis.
Nilai PWM UNO dapat diubah dari 0 ke 255. Dengan “0” serendah ke “255” tertinggi. Dengan nisbah tugas 255 sebagai tugas, kita akan mendapat 5V pada PIN3. Sekiranya nisbah tugas diberikan sebagai 125, kita akan mendapat 2.5V pada PIN3.
Sekarang kita mempunyai nilai 0-1024 sebagai output ADC dan 0-255 sebagai nisbah tugas PWM. Jadi ADC kira-kira empat kali ganda nisbah PWM. Oleh itu, dengan membagi hasil ADC dengan 4, kita akan mendapat anggaran nisbah tugas.
Dengan itu kita akan mempunyai isyarat PWM yang nisbah tugasnya berubah secara linear dengan berat. Ini diberikan kepada bel, kami mempunyai penjana bunyi bergantung pada berat.