Dalam proyek ini kami akan mengembangkan sirkuit yang menyenangkan menggunakan sensor Force dan Arduino Uno. Sirkuit ini menghasilkan suara yang secara linier berhubungan dengan gaya yang diterapkan pada sensor. Untuk itu kita akan menghubungkan sensor FORCE dengan Arduino Uno. Di UNO, kita akan menggunakan fitur 8 bit ADC (Analog to Digital Conversion) untuk melakukan pekerjaan itu.
Force Sensor atau Force Sensitive Resistor
Sensor FORCE adalah transduser yang mengubah resistansinya saat tekanan diterapkan pada permukaan. Sensor FORCE tersedia dalam berbagai ukuran dan bentuk. Kami akan menggunakan salah satu versi yang lebih murah karena kami tidak membutuhkan banyak akurasi di sini. FSR400 adalah salah satu sensor gaya termurah di pasaran. Gambar FSR400 terlihat pada gambar di bawah ini. Mereka juga disebut resistor peka-gaya atau FSR karena resistansinya berubah sesuai dengan gaya atau tekanan yang diterapkan padanya. Ketika tekanan diterapkan pada resistor penginderaan gaya ini resistansinya menurun, resistansi berbanding terbalik dengan gaya yang diterapkan. Jadi bila tidak ada tekanan di atasnya, resistansi FSR akan sangat tinggi.
Sekarang penting untuk dicatat bahwa FSR 400 sensitif sepanjang panjangnya, gaya atau berat harus terkonsentrasi pada labirin di tengah mata sensor, seperti yang ditunjukkan pada gambar. Jika gaya diterapkan pada waktu yang salah, perangkat dapat merusak secara permanen.
Hal penting lainnya yang perlu diketahui adalah, sensor dapat menggerakkan arus dengan kisaran tinggi. Jadi perhatikan arus mengemudi saat memasang. Juga sensor memiliki batasan gaya yaitu 10 Newton. Jadi kita hanya bisa menerapkan berat 1Kg. Jika bobot lebih tinggi dari 1Kg diterapkan, sensor mungkin menunjukkan beberapa penyimpangan. Jika meningkat lebih dari 3Kg. sensor dapat rusak secara permanen.
Seperti yang diceritakan sebelumnya, sensor ini digunakan untuk merasakan perubahan tekanan. Jadi ketika bobot diterapkan di atas sensor FORCE, resistansi berubah secara drastis. Resistensi FS400 terhadap berat ditunjukkan pada grafik di bawah ini,
Seperti yang ditunjukkan pada gambar di atas, resistansi antara dua kontak sensor berkurang dengan bobot atau konduktansi antara dua kontak sensor meningkat. Hambatan konduktor murni diberikan oleh:
Dimana, p- Resistivitas konduktor
l = Panjang konduktor
A = Area konduktor.
Sekarang pertimbangkan konduktor dengan resistansi "R", jika beberapa tekanan diterapkan di atas konduktor, area pada konduktor berkurang dan panjang konduktor meningkat sebagai akibat dari tekanan. Jadi dengan rumus resistansi konduktor harus meningkat, karena resistansi R berbanding terbalik dengan luas dan juga berbanding lurus dengan panjang l.
Jadi dengan ini untuk konduktor di bawah tekanan atau berat resistansi konduktor meningkat. Tetapi perubahan ini kecil dibandingkan dengan resistansi keseluruhan. Untuk perubahan yang cukup besar, banyak konduktor ditumpuk bersama. Inilah yang terjadi di dalam Sensor Gaya yang ditunjukkan pada gambar di atas. Saat melihat lebih dekat, seseorang dapat melihat banyak garis di dalam sensor. Masing-masing garis ini mewakili konduktor. Sensitivitas sensor ada dalam bilangan konduktor.
Namun dalam hal ini tahanan akan berkurang dengan adanya tekanan karena material yang digunakan disini bukanlah konduktor murni. FSR di sini adalah perangkat film tebal polimer (PTF) yang kuat. Jadi ini bukan perangkat bahan konduktor murni. Ini terbuat dari bahan, yang menunjukkan penurunan resistansi dengan peningkatan gaya yang diterapkan ke permukaan sensor. Materi ini menunjukkan karakteristik seperti yang ditunjukkan pada grafik FSR.
Perubahan penolakan ini tidak ada gunanya kecuali kita dapat membacanya. Pengontrol di tangan hanya dapat membaca peluang dalam tegangan dan tidak kurang, untuk ini kita akan menggunakan rangkaian pembagi tegangan, dengan itu kita dapat memperoleh perubahan resistansi sebagai perubahan tegangan.
Pembagi tegangan adalah rangkaian resistif dan ditunjukkan pada gambar. Dalam jaringan resistif ini kami memiliki satu resistansi konstan dan resistansi variabel lainnya. Seperti yang ditunjukkan pada gambar, R1 di sini adalah resistansi konstan dan R2 adalah sensor FORCE yang bertindak sebagai resistansi. Titik tengah cabang digunakan untuk pengukuran. Dengan perubahan R2, kami memiliki perubahan di Vout. Jadi dengan ini kami memiliki perubahan tegangan dengan berat.
Sekarang hal penting untuk dicatat di sini adalah, input yang diambil oleh pengontrol untuk konversi ADC serendah 50µAmp. Efek pembebanan pembagi tegangan berbasis resistansi ini penting karena arus yang ditarik dari Vout pembagi tegangan meningkatkan persentase kesalahan yang meningkat, untuk saat ini kita tidak perlu khawatir tentang efek pembebanan.
Cara memeriksa Sensor FSR
Resistor penginderaan gaya dapat diuji menggunakan multimeter. Hubungkan dua pin sensor FSR ke multimeter tanpa memberikan gaya apapun dan periksa nilai resistansinya, nilainya akan sangat tinggi. Kemudian terapkan beberapa gaya ke permukaannya dan lihat penurunan nilai resistansi.
Aplikasi Sensor FSR
Resistor penginderaan gaya terutama digunakan untuk membuat "tombol" penginderaan tekanan. Mereka digunakan dalam berbagai bidang seperti sensor hunian mobil, bantalan sentuh resistif, ujung jari robotik, tungkai buatan, keypad, sistem pronasi kaki, alat musik, Elektronik Tertanam, Peralatan Pengujian dan Pengukuran, Kit Pengembangan OEM dan elektronik portabel, olahraga. Mereka juga digunakan dalam sistem Augmented Reality serta untuk meningkatkan interaksi seluler.
Komponen Diperlukan
Perangkat Keras: Arduino Uno, Power supply (5v), 1000 uF Capacitor, 100nF capacitor (3 buah), resistor 100KΩ, Buzzer, resistor 220Ω, FSR400 Force sensor.
PERANGKAT LUNAK: Atmel studio 6.2 atau Aurdino nightly
Diagram Sirkuit dan Penjelasan Kerja
Sambungan rangkaian untuk menghubungkan Resistor penginderaan gaya dengan Arduino ditunjukkan pada diagram di bawah ini.
Tegangan di sensor tidak sepenuhnya linier; itu akan menjadi yang berisik. Untuk menyaring kebisingan kapasitor ditempatkan di setiap resistor di sirkuit pembagi seperti yang ditunjukkan pada gambar.
Di sini kita akan mengambil tegangan yang disediakan oleh pembagi (tegangan yang mewakili berat secara linier) dan memasukkannya ke salah satu saluran ADC UNO. Setelah konversi kita akan mengambil nilai digital itu (mewakili berat) dan menghubungkannya dengan nilai PWM untuk menggerakkan bel.
Jadi dengan bobot kami memiliki nilai PWM yang mengubah rasio tugasnya tergantung pada nilai digital. Semakin tinggi nilai digital semakin tinggi duty ratio PWM maka semakin tinggi pula noise yang dihasilkan buzzer. Jadi kami menghubungkan berat dengan suara.
Sebelum melangkah lebih jauh mari kita bicara tentang ADC dari Arduino Uno. ARDUINO memiliki enam saluran ADC, seperti yang ditunjukkan pada gambar. Dalam salah satu atau semuanya dapat digunakan sebagai input untuk tegangan analog. UNO ADC memiliki resolusi 10 bit (jadi nilai integer dari (0- (2 ^ 10) 1023)). Ini berarti akan memetakan tegangan input antara 0 dan 5 volt menjadi nilai integer antara 0 dan 1023. Jadi untuk setiap (5/1024 = 4.9mV) per unit.
Di sini kita akan menggunakan A0 dari UNO.
Kita perlu mengetahui beberapa hal.
|
Pertama-tama saluran ADC UNO memiliki nilai referensi default 5V. Ini berarti kita dapat memberikan tegangan input maksimum 5V untuk konversi ADC di saluran input mana pun. Karena beberapa sensor memberikan tegangan dari 0-2.5V, dengan referensi 5V kami mendapatkan akurasi yang lebih rendah, jadi kami memiliki instruksi yang memungkinkan kami untuk mengubah nilai referensi ini. Jadi untuk mengubah nilai referensi yang kita miliki ("analogReference ();") Untuk saat ini kita biarkan sebagai.
Sebagai default kami mendapatkan resolusi ADC papan maksimum yaitu 10 bit, resolusi ini dapat diubah dengan menggunakan instruksi (“analogReadResolution (bits);”). Perubahan resolusi ini dapat berguna untuk beberapa kasus. Untuk saat ini kami membiarkannya sebagai.
Nah jika kondisi di atas diset ke default, kita bisa membaca nilai dari ADC channel '0' dengan langsung memanggil function “analogRead (pin);”, disini “pin” mewakili pin tempat kita menghubungkan sinyal analog, dalam hal ini akan menjadi "A0". Nilai dari ADC dapat diambil menjadi integer sebagai "int SENSORVALUE = analogRead (A0); ", Dengan instruksi ini nilai setelah ADC disimpan dalam integer" SENSORVALUE ".
PWM Arduino Uno dapat dicapai di salah satu pin yang disimbolkan sebagai “~” di papan PCB. Ada enam saluran PWM di UNO. Kami akan menggunakan PIN3 untuk tujuan kami.
analogWrite (3, VALUE); |
Dari kondisi diatas kita bisa langsung mendapatkan sinyal PWM pada pin yang sesuai. Parameter pertama dalam tanda kurung adalah untuk memilih nomor pin sinyal PWM. Parameter kedua adalah rasio tugas penulisan.
Nilai PWM dari UNO dapat diubah dari 0 menjadi 255. Dengan "0" sebagai yang terendah ke "255" sebagai yang tertinggi. Dengan 255 sebagai duty ratio kita akan mendapatkan 5V pada PIN3. Jika duty ratio diberikan sebagai 125 kita akan mendapatkan 2.5V pada PIN3.
Sekarang kita memiliki nilai 0-1024 sebagai keluaran ADC dan 0-255 sebagai rasio tugas PWM. Jadi ADC kira-kira empat kali rasio PWM. Jadi dengan membagi hasil ADC dengan 4 kita akan mendapatkan perkiraan rasio tugas.
Dengan itu kita akan memiliki sinyal PWM yang rasio tugasnya berubah secara linier dengan berat. Ini diberikan ke buzzer, kami memiliki generator suara tergantung pada beratnya.