في هذا المشروع ، سنقوم بربط مشفر روتاري مع ARDUINO. ARDUINO UNO هي لوحة تطوير تعتمد على وحدة التحكم ATMEGA مصممة لمهندسي وهواة الإلكترونيات. في ARDUINO لدينا 20 دبوسًا للإدخال / الإخراج ، لذا يمكننا برمجة 20 دبوسًا من UNO لاستخدامها كمدخلات أو مخرجات.
يستخدم التشفير الدوراني لمعرفة موضع الحركة والحركة الزاوية للمحرك أو المحور. إنه جهاز طرفي ثلاثي عادةً ، مع دبابيس طاقة وأرضية ، يوجد إجمالي 5 أطراف. يتم عرض وحدة ROTARY ENCODER أدناه.
دبابيس جهاز التشفير الدوار هي:
- أرض
- إيجابي متصل بـ + 5 فولت
- إشارة الخرج دبوس
- خرج إشارة ب دبوس
- دبوس الساعة أو دبوس مشترك
يوفر ENCODER نبضات تمثل التغيير في موضع العمود لكي تفهمه الأنظمة. ضع في اعتبارك أن المشفر الدوار يعمل بالطاقة ويتم تحريك العمود.
كما هو موضح في الجدول أعلاه ، ضع في اعتبارك أن العمود يتحرك على مدار الساعة. مع هذا سيكون هناك Falling Edge عند المحطة A ثم عند المحطة B.
ضع في اعتبارك أن العمود يتحرك عكس اتجاه الساعة. مع هذا سيكون هناك Falling Edge عند المحطة B ثم عند المحطة A.
ستحدث هذه الحافة مرة واحدة لـ 360/20 = 18 درجة (هذا لجهاز تشفير مع 20 موضعًا ، وهذا يتغير من نوع إلى نوع ، وكلما زاد العدد زادت الدقة).
مع كلتا الحالتين المذكورتين أعلاه ، يمكننا الحصول على الاتجاه ودرجة الدوران. وهكذا نحصل على المعلمات المطلوبة للحصول على موضع العمود.
المكونات مطلوبة
الأجهزة: Arduino uno board ، دبابيس توصيل ، مقاوم 220Ω ، LED (ثماني قطع) ، مقاوم 1KΩ ، مقاوم 220Ω (قطعتان) ، مكثف 100nF (قطعتان) ، لوح الخبز.
البرمجيات: اردوينو ليلا
مخطط الدائرة وشرح العمل
المكثفات هنا لتحييد تأثير ارتداد التلامس في ENCODER. بدون هذه المكثفات ستكون هناك بعض المشاكل الخطيرة في قراءة الموضع.
عندما يتم نقل العمود سيكون هناك فرق زمني بين خرج دبابيس الإخراج. سيتعرف Arduino UNO على هذا الفارق الزمني في اتجاه عقارب الساعة للدوران المضاد للساعة.
إذا كان الدوران في اتجاه عقارب الساعة ، يتم زيادة العد الثنائي بمقدار واحد ، ويظهر هذا العدد في منفذ LED كما هو موضح في الشكل.
إذا كان الدوران ضد عقارب الساعة ، فسيتم إنقاص العدد الثنائي بمقدار واحد ويظهر العد الثنائي في بايت LED.
يتم شرح عمل Arduino باستخدام Rotary Encoder خطوة بخطوة في كود C الوارد أدناه.