چگونه بازخورد را از حسگر نوری بخوانیم

سنسور نوری

سنسورهای نوری ، هنگامی که با استفاده می شود محرک های خطی ،عملکرد بسیار شبیه به سنسورهای اثر هال، به جز آنها نور را به جای میدان های مغناطیسی تشخیص می دهند [1]. سنسورهای نوری با استفاده از نور LED یا منبع نور دیگری که از دیسک رمزگذار عبور می کند کار می کنند. این دیسک رمزگذار شکاف دارد تا نور به صورت دوره ای از آن عبور کند. در طرف دیگر دیسک یک دستگاه آشکارساز وجود دارد که هنگام عبور از شکافهای دیسک ، نور را تشخیص داده و یک سیگنال خروجی ایجاد می کند [1]. با حرکت محرک ، دیسک رمزگذار می چرخد ​​و نور توسط دستگاه آشکارساز نوری که یک موج مربع از پالس های ولتاژ تولید می کند ، شناسایی می شود. از این پالس ها می توان به طور مشابه با پالس های سنسور اثر هال استفاده کرد تا مشخص شود که محرک چقدر حرکت کرده است.

سنسور نوری

بازخورد موقعیتی از یک حسگر نوری

از آنجا که سنسورهای نوری از نظر میزان خروجی کاملاً مشابه سنسورهای اثر هال هستند ، در این پست وبلاگ به طور خلاصه نحوه خواندن خروجی آنها برای بازخورد موضعی بیان خواهد شد. اگر به دنبال جزئیات بیشتر هستید ، پست ما را در مورد چگونگی خواندن بازخورد موقعیتی از یک سنسور اثر هال بررسی کنید ، همانطور که می بینید

مانند سنسورهای اثر هال ، سنسورهای نوری دارای 3 پایه برای اتصال هستند. یکی ولتاژ ورودی ، دیگری زمین و در آخر ، یکی سیگنال خروجی. برای استفاده از پالس های سیگنال خروجی برای بازخورد موقعیتی ، باید از a استفاده کنید میکروکنترلر برای شمردن پالس های تولید شده. برای شمارش دقیق این پالس ها می خواهید از پین های وقفه خارجی میکروکنترلر خود استفاده کنید. از آنجا که وقفه های خارجی در اثر تغییر ولتاژ ایجاد می شوند ، می توان از آنها برای تشخیص هر پالس در زمان وقوع استفاده کرد. هنگامی که وقفه خود را در کد میکروکنترلر خود نصب کردید ، باید روال سرویس وقفه را تنظیم کنید که پالس ها را در زمان وقوع شمارش کند. از تابع countSteps () در مثال کد زیر برای شمارش تعداد پالس های سنسور نوری استفاده شده است.

برای استفاده از این پالس ها برای تعیین مقدار موقعیتی ، باید موقعیت قبلی محرک خطی و جهتی را که محرک خطی در آن حرکت می کند بدانید. همانطور که کنترل می کنید محرک خطی شما به کدام سمت حرکت می کند ، می توانید به سادگی یک متغیر تنظیم کنید جهت محرک را در کد خود ردیابی کنید. می توان از این متغیر برای تعیین نیاز به افزودن یا کم کردن پالس ها از موقعیت قبلی استفاده کرد. هنگامی که موقعیت خود را به روز کردید ، باید پالس های شمارش شده را به صفر برسانید. مثال کد زیر تابعی را به شما نشان می دهد که موقعیت را براساس تعداد پالس های شمارش شده به روز می کند. هنگامی که از نظر ضربان ها موقعیت پیدا کردید می توانید با استفاده از مشخصات پالس در اینچ محرک خطی خود به اینچ تبدیل کنید.

تحریک محرک خطی خود را

برای استفاده دقیق از بازخورد موقعیتی یک حسگر نوری ، باید همیشه از موقعیت شروع محرک خطی خود آگاه باشید. اگرچه وقتی برای اولین بار سیستم خود را روشن می کنید ، میکروکنترلر شما نمی تواند تشخیص دهد که محرک طولانی است یا نه. برای این کار لازم است محرک خطی خود را در یک موقعیت مشخص قرار دهید. به خانه خود محرک خطی، شما باید آن را به یک موقعیت مشخص هدایت کنید ، مانند کاملاً جمع شده. با استفاده از کد آردوینو زیر ، ما یک حلقه WHILE تنظیم کرده ایم که محرک خطی ما را به سمت موقعیت شناخته شده ما سوق می دهد. در این مثال ، با بررسی اینکه آیا متغیر مراحل تغییر کرده است یا خیر ، بررسی خواهیم کرد که در موقعیت شناخته شده خود قرار داریم. ما همچنین باید اطمینان حاصل کنیم که زمان کافی برای انتظار ایجاد وقفه سپری شده است ، برای این منظور از تابع millis () استفاده کرده و آن را با تمبر قبلی مقایسه می کنیم. هنگامی که تشخیص دادیم که محرک خطی در موقعیت اصلی خانه ما قرار دارد ، حرکت محرک را متوقف کرده ، متغیر مراحل را تنظیم مجدد کرده و از حلقه WHILE خارج می شویم.

برخورد با راه اندازهای دروغین

در حالی که سنسورهای نوری به اندازه پتانسیومترها نسبت به نویز الکتریکی حساس نیستند ، نویز الکتریکی و انعطاف پذیری سوئیچ هنوز هم می توانند سیگنال خروجی را تحت تأثیر قرار دهند و ممکن است باعث شمارش پالس های کاذب شود. چند پالس اضافی تأثیر زیادی در موقعیت یابی نخواهد داشت ، اما با گذشت زمان ممکن است مسئله بزرگتری باشد. شما می توانید با استفاده از یک تایمر داخلی برای فیلتر کردن عوامل محرمانه با این مشکلات مبارزه کنید. همانطور که می توانید تعیین کنید که انتظار می رود پالس های جدید چقدر تکرار شود ، می توانید هنگام وقفه در اثر سر و صدا فیلتر کنید. در نمونه کد زیر ، trigDelay تاخیر زمانی بین هر پالس است. اگر وقفه قبل از این تأخیر ایجاد شده باشد ، پالس محاسبه نمی شود. مدت زمان این تاخیر بر اساس برنامه شما متفاوت خواهد بود ، اما اگر خیلی کوتاه باشد صوتی را به درستی فیلتر نمی کند و اگر بیش از حد طولانی باشد ، پالس های واقعی حسگر نوری را از دست می دهد.

روش دیگر برای مبارزه با محرک های کاذب ، اصلاح مقدار موقعیتی است که هر زمان محرک به موقعیت مشخصی می رسد. مانند به کار انداختن محرک خطی ، اگر محرک خطی را کاملاً به حالت جمع شده یا کشیده هدایت کرده اید یا اگر از سوئیچ های محدود خارجی استفاده می کنید ، می دانید که برای رسیدن به آن موقعیت چند پالس لازم است. پس از رسیدن به موقعیت شناخته شده می توانید مقدار موقعیت را با استفاده از آن مقدار تصحیح کنید. در نمونه کد زیر ، این کار برای موقعیت های کاملاً کشیده و کاملاً جمع شده انجام شده است. این روش یک راه حل عملی برای اطمینان از دقیق ماندن ارزش موقعیتی شما فراهم می کند.

خلاصه

سنسورهای نوری مورد استفاده برای بازخورد موقعیتی در مقایسه با سنسورهای اثر هال و پتانسیومتر دقت و وضوح بیشتری را ارائه می دهند ، در حالی که دارای نقاط قوت و اشکال مشابه سنسورهای اثر هال هستند. اگرچه آنها موقعیت مطلق را اندازه گیری نمی کنند و برای تأمین مقدار موقعیت به یک موقعیت شروع شناخته شده نیاز دارند ، تعداد زیادی پالس در اینچ امکان اطمینان در موقعیت یابی و اطمینان از حرکت همزمان محرک های خطی متعدد را فراهم می کند. استفاده از ما FA-SYNC-X کنترل کننده محرک یا tاز طریق کد اضافی، حتی می توانید اطمینان حاصل کنید که محرک ها صرف نظر از بار ، به صورت یکپارچه حرکت می کنند.

برای مثال کامل کد ، وبلاگ ما را در اینجا ببینید نحوه خواندن بازخورد موقعیتی از سنسور اثر هال به همان اندازه مشابه خواهد بود مقادیری مانند پالس در اینچ و تاخیر زمانی بین پالس ها از جمله تغییراتی است که برای استفاده دقیق از آن کد برای استفاده دقیق از حسگر نوری خود باید ایجاد کنید.

 

[1] Paschotta ، R. مقاله سنسورهای نوری. برگرفته از:https://www.rp-photonics.com/optical_sensors.html

Share This Article
Tags:

Share this article

Need Help Finding the Right Actuator?

We precision engineer and manufacture our products so you get direct manufacturers pricing. We offer same day shipping and knowledgeable customer support. Try using our Actuator Calculator to get help picking the right actuator for your application.