تُعد مستشعرات تأثير هول إحدى خيارات التغذية الراجعة التي نقدّمها في مشغلاتنا الخطية لتوفير معلومات عن الموضع والسرعة. إن طرازاتنا PA-04-HS وPA-100 تأتي بمستشعرات تأثير هول في الوحدات القياسية، بينما يمكن طلب عدة مشغلات أخرى منا مخصّصة مع مستشعرات تأثير هول.
ما هو مستشعر تأثير هول؟
مستشعر تأثير هول هو مكوّن إلكتروني يولّد جهداً كهربائياً اعتماداً على شدة المجال المغناطيسي المارّ عبره. وعند إقران هذا المستشعر بدارة كشف عتبة الجهد يمكن إنتاج إشارة ذات حالتين. في مشغلاتنا، صُمّم مستشعر تأثير هول لإنتاج إشارة بقناتين مع أشكال موجية تُكمَّم في إحدى حالتين ثنائيتين: تشغيل أو إيقاف. سترتفع هاتان الإشارتان وتنخفضان مع دوران المحرك الكهربائي مع وجود فرق طور قدره 90° بينهما كما هو موضح أدناه. وتعتمد تردّد هذه النبضات، فيما يتعلّق بتغيّر الموضع داخل المشغل، على الدقة الكليّة وتختلف بين مشغلاتنا المختلفة.
كيف تتم قراءة إشارات هول هذه؟
كيفية استخدام مستشعر تأثير هول
عند قراءة إشارة رقمية على متحكّم دقيق، هناك طريقتان رئيستان: الاستقصاء، والمقاطعات. الاستقصاء هو أسلوب مبرمج يقوم فيه المتحكّم الدقيق بفحص حالة دخلٍ ما بشكل دوري لمعرفة ما إذا حصل تغيير. أمّا المقاطعات فهي آلية عتادية تحوّل تركيز برنامج المتحكّم فوراً عندما تتغيّر الإشارة على أحد المداخل. لكل طريقة مزايا وعيوب، ولكلٍ تطبيقات تكون أنسب لها. في حالتنا، نرغب بمعرفة اللحظة الدقيقة التي تتغيّر فيها حالة الإشارة، لذا سنستخدم المقاطعات. لاستخدام مستشعر تأثير هول مع متحكّمات Arduino تُستخدم مقاطعة. ومن خلال إنشاء روتين خدمة مقاطعة ISR يمكن جعل Arduino ينفّذ قسماً من الشفرة مباشرةً عند اكتشاف تغيير محدد على دخل معيّن. يظهر أدناه مثالٌ على ISR لأردوينو؛ ويمكن لاستخدام نسخة معدّلة توجّه الإشارات المكتشفة نحو مصابيح LED أن يكون طريقةً لاختبار مستشعر تأثير هول.
برمجة أردوينو لقراءة مستشعرات تأثير هول - طريقة المقاطعات
|
// المتغيرات العامة المتطايرة مطلوبة لتمرير البيانات بين // البرنامج الرئيسي وروتينات خدمة المقاطعة ISR's volatile byte signalA; // أرجل التوصيل التي يمكن استخدامها مع المقاطعات تعتمد على اللوحة التي // تستخدمها // سيكتشف الجبهة الصاعدة أو الهابطة // معاكساً للحالة الحالية signalA = !signalA; |
ما الذي يجب أخذه في الاعتبار في التطبيق؟
بما أن الإشارات التي نقرأها ستكون عالية التردد، فهناك بعض الاعتبارات الواجب مراعاتها. أولاً، كم سيستغرق البرنامج لتنفيذ الشفرة داخل ISR؟ كم عدد الإشارات المنفصلة التي تحتاج إلى روتينات ISR؟ ما مدى سرعة تردّد ساعة المتحكّم الدقيق؟
إحدى المشاكل التي قد تواجه برنامجاً يحتوي على ISR طويل هي أن ISR قد يُحفَّز مرةً أخرى قبل أن ينهي الشفرة التي احتواها عند التحفيز السابق. يُوصى بالإبقاء على أقل قدر ممكن من الشفرة اللازمة داخل ISR للمساعدة في تجنّب هذه المشكلة.
في مثال الشفرة أعلاه، تم إعداد إشارتين بمقاطعتين منفصلتين. كلا الإشارتين مطلوبتان لاكتشاف اتجاه حركة المشغل الخطي؛ ويتم ذلك عبر التحقق من أي الإشارتين تنتقل من منخفض إلى عالٍ قبل الأخرى. الجانب السلبي لتفعيل المقاطعات لكلتا الإشارتين هو أنه سيتم تشغيل ضعف شفرة ISR. في التطبيقات التي لا تكون فيها حاجة لاتجاه حركة المشغل أو كانت واضحة بالفعل من البرنامج الجاري، فستكفي إشارة واحدة يتم إعدادها مع روتين خدمة مقاطعة.
تملك بعض المتحكّمات الدقيقة القدرة على تغيير سرعة الساعة لتكون أسرع. تؤثر سرعة الساعة في معدل تشغيل المتحكّم للبرنامج. إذا كان تردّد الإشارات المقروءة مرتفعاً، فقد يلزم زيادة سرعة الساعة للمواكبة. ومع ذلك، يُعد استخدام أقل سرعة ساعة ممكنة تسمح بها التطبيق أكثر كفاءةً في استهلاك الطاقة.
ماذا يحدث إذا لم يكن المتحكّم الدقيق سريعاً بما يكفي؟
بعد مراعاة ما سبق، قد لا يكون المتحكّم الدقيق أحياناً سريعاً بما يكفي لاجتياز الشفرة الرئيسية ومواكبة روتينات ISR. في هذه الحالات، قد ترغب في استخدام متحكّم دقيق إضافي. يمكن استخدام متحكّم لقيادة روتينات ISR وقراءة البيانات، ثم نقل البيانات المطلوبة إلى متحكّم آخر حيث يمكن تنفيذ الشفرة الرئيسية دون انقطاع.