Cara Membaca Umpan Balik dari Sensor Optik

Sensor optik

Sensor optik, saat digunakan dengan aktuator linier,berfungsi sangat mirip dengan Sensor Efek Hall, kecuali mereka mendeteksi cahaya, bukan medan magnet [1]. Sensor optik beroperasi dengan menggunakan cahaya dari LED atau sumber cahaya lain yang dilewatkan melalui disk enkoder. Disk enkoder ini ditempatkan untuk memungkinkan cahaya melewatinya secara berkala. Di sisi lain disk adalah fotodetektor, yang mendeteksi cahaya ketika melewati slot dalam disk dan membuat sinyal output [1]. Saat aktuator bergerak, disk enkoder berputar dan cahaya terdeteksi oleh fotodetektor yang menghasilkan gelombang persegi pulsa tegangan. Pulsa ini dapat digunakan mirip dengan pulsa sensor efek aula untuk menentukan seberapa jauh aktuator telah bergerak.

Sensor optik

Umpan balik posisi dari sensor optik

Karena sensor optik berfungsi sangat mirip dengan sensor efek Hall dalam hal output mereka, posting blog ini akan mencakup cara membaca output mereka untuk umpan balik posisi. Jika Anda mencari detail lebih lanjut, periksa posting kami tentang cara membaca umpan balik posisi dari sensor efek aula karena akan serupa.

Seperti sensor efek Hall, sensor optik akan memiliki 3 pin untuk terhubung; Salah satunya adalah tegangan input, yang lain adalah tanah, dan terakhir, satu adalah sinyal output. Untuk memanfaatkan pulsa pada sinyal output untuk umpan balik posisi, Anda harus menggunakan a Mikrokontroler untuk menghitung pulsa yang dihasilkan. Anda ingin memanfaatkan pin interupsi eksternal dari mikrokontroler Anda untuk secara akurat menghitung pulsa ini. Karena interupsi eksternal dipicu oleh perubahan tegangan, mereka dapat digunakan untuk mendeteksi setiap pulsa saat terjadi. Setelah Anda mengatur interupsi dalam kode mikrokontroler Anda, Anda harus mengatur rutinitas layanan interupsi yang menghitung pulsa saat terjadi. Fungsi CountSteps () dalam contoh kode di bawah ini digunakan untuk menghitung jumlah pulsa dari sensor optik.

Untuk memanfaatkan pulsa ini untuk menentukan nilai posisi, Anda harus mengetahui posisi sebelumnya dari aktuator linier dan arah yang dilalui aktuator linier. Saat Anda mengontrol ke arah mana aktuator linier Anda bergerak, Anda cukup mengatur variabel variabel Anda untuk melacak arah aktuator dalam kode Anda. Variabel ini dapat digunakan untuk menentukan apakah Anda perlu menambah atau mengurangi pulsa dari posisi Anda sebelumnya. Setelah Anda memperbarui posisi Anda, Anda harus mengatur ulang pulsa yang dihitung ke nol. Contoh kode di bawah ini menunjukkan fungsi yang memperbarui posisi berdasarkan jumlah pulsa yang dihitung. Setelah Anda memiliki posisi dalam hal pulsa, Anda dapat dikonversi menjadi inci menggunakan spesifikasi pulsa per inci dari aktuator linier Anda.

Menganut aktuator linier Anda

Untuk secara akurat memanfaatkan umpan balik posisi dari sensor optik, Anda harus selalu mengetahui posisi awal aktuator linier Anda. Meskipun ketika Anda pertama kali menghidupkan sistem Anda, mikrokontroler Anda tidak akan dapat mengetahui apakah aktuator diperpanjang atau tidak. Ini akan mengharuskan Anda untuk rumah aktuator linier Anda ke posisi yang diketahui. Ke rumah Anda aktuator linier, Anda perlu mengantarnya ke posisi yang diketahui, seperti ditarik sepenuhnya. Menggunakan kode Arduino di bawah ini sebagai contoh, kami telah mengatur loop sementara yang akan mendorong aktuator linier kami ke posisi kami yang diketahui. Dalam contoh ini, kita akan tahu bahwa kita berada di posisi kita yang diketahui dengan memeriksa apakah interupsi telah dipicu atau tidak dengan memeriksa apakah variabel langkah telah berubah. Kita juga perlu memastikan bahwa waktu yang cukup telah berlalu untuk mengharapkan interupsi akan dipicu, karena ini kita memanfaatkan fungsi millis () dan membandingkannya dengan cap waktu sebelumnya. Setelah kami menentukan bahwa aktuator linier berada di posisi rumah kami, kami berhenti mengendarai aktuator, mengatur ulang variabel langkah, dan keluar dari loop sementara.

Berurusan dengan pemicu palsu

Sementara sensor optik tidak sensitif terhadap kebisingan listrik seperti potensiometer, noise listrik dan sakelar memantul masih dapat memengaruhi sinyal output dan dapat memicu pulsa palsu yang dihitung. Beberapa pulsa tambahan tidak akan mempengaruhi posisi, tetapi seiring waktu itu mungkin masalah yang lebih besar. Anda dapat memerangi masalah ini dengan memanfaatkan timer internal untuk menyaring pemicu palsu. Karena Anda dapat menentukan seberapa sering Anda mengharapkan pulsa baru terdeteksi, Anda dapat menyaring ketika interupsi dipicu oleh kebisingan. Dalam sampel kode di bawah ini, TrigDelay adalah penundaan waktu antara setiap pulsa. Jika interupsi dipicu sebelum penundaan ini, maka denyut nadi tidak akan dihitung. Lamanya waktu penundaan ini akan bervariasi berdasarkan aplikasi Anda, tetapi jika terlalu pendek itu tidak akan menyaring kebisingan dengan benar dan jika terlalu lama itu akan kehilangan pulsa aktual dari sensor optik.

Cara lain untuk memerangi pemicu palsu adalah dengan memperbaiki nilai posisi setiap kali aktuator mencapai posisi yang diketahui. Seperti halnya aktuator linier, jika Anda telah menggerakkan aktuator linier ke posisi yang sepenuhnya ditarik atau diperpanjang atau jika Anda menggunakan sakelar batas eksternal, Anda akan tahu berapa banyak pulsa yang diperlukan untuk mencapai posisi itu. Anda kemudian dapat dengan mudah memperbaiki nilai posisi menggunakan nilai itu ketika Anda mencapai posisi yang diketahui itu. Dalam sampel kode di bawah ini, ini dilakukan untuk posisi yang sepenuhnya diperluas dan sepenuhnya ditarik sepenuhnya. Metode ini memberikan solusi praktis untuk memastikan nilai posisi Anda tetap akurat.

Ringkasan

Sensor optik yang digunakan untuk umpan balik posisi memberikan akurasi dan resolusi yang lebih besar dibandingkan dengan sensor efek Hall dan potensiometer, sementara memiliki kekuatan dan kelemahan yang sama dengan sensor efek Hall. Meskipun mereka tidak mengukur posisi absolut dan membutuhkan posisi awal yang diketahui untuk memberikan nilai posisi, sejumlah besar pulsa per inci memungkinkan keandalan dalam penentuan posisi dan memastikan beberapa aktuator linier bergerak secara bersamaan. Memanfaatkan kami Fa-sync-x controller aktuator atau melalui kode tambahan, Anda bahkan dapat memastikan aktuator bergerak secara serempak terlepas dari beban.

Untuk contoh kode lengkap, periksa blog kami di cara membaca umpan balik posisi dari sensor efek aula sebanyak yang serupa. Nilai -nilai seperti pulsa per inci dan penundaan waktu antara pulsa adalah beberapa perubahan yang harus Anda lakukan untuk menggunakan kode itu untuk secara akurat memanfaatkan sensor optik Anda.

 

[1] Paschotta, R. Artikel tentang sensor optik. Diterima dari:https://www.rp-photonics.com/optical_sensors.html

Share This Article
Tags: