- جهاز التشفير الروتاري وأنواعه
- KY-040 الروتاري التشفير Pinout والوصف
- كيف يعمل جهاز التشفير الروتاري
- المكونات مطلوبة
- PIC16F877A مخطط حلبة توصيل جهاز التشفير الدوراني
- شرح الكود
A التشفير الروتاري هو جهاز إدخال التي تساعد المستخدم للتفاعل مع النظام. إنه يشبه إلى حد كبير مقياس جهد الراديو ولكنه ينتج سلسلة من النبضات مما يجعل تطبيقه فريدًا. عندما يتم تدوير مقبض جهاز التشفير ، فإنه يدور في شكل خطوات صغيرة مما يساعد على استخدامه للتحكم في محرك السائر / المؤازر ، والتنقل عبر سلسلة من القائمة وزيادة / تقليل قيمة الرقم وأكثر من ذلك بكثير.
في هذه المقالة ، سوف نتعرف على الأنواع المختلفة من أجهزة التشفير الدوارة وكيف تعمل. سنقوم أيضًا بتوصيله بـ PIC Microcontroller PIC16F877A والتحكم في قيمة عدد صحيح عن طريق تدوير جهاز التشفير وعرض قيمته على شاشة LCD مقاس 16 * 2. في نهاية هذا البرنامج التعليمي ، ستكون مرتاحًا لاستخدام برنامج التشفير الروتاري لمشاريعك. اذا هيا بنا نبدأ…
جهاز التشفير الروتاري وأنواعه
غالبًا ما يُطلق على المشفر الدوار اسم مشفر العمود. إنه محول كهروميكانيكي ، مما يعني أنه يحول الحركات الميكانيكية إلى نبضات إلكترونية أو بعبارة أخرى يحول الموضع الزاوي أو موضع الحركة أو موضع العمود إلى إشارة رقمية أو تمثيلية. وهو يتألف من مقبض يتحرك خطوة بخطوة عند الدوران وينتج سلسلة من القطارات النبضية بعرض محدد مسبقًا لكل خطوة.
هناك العديد من أنواع التشفير الدوارة في السوق ، ويمكن للمصمم اختيار أحدها وفقًا لتطبيقه. الأنواع الأكثر شيوعًا مذكورة أدناه
- التشفير التزايدي
- التشفير المطلق
- التشفير المغناطيسي
- التشفير البصري
- التشفير بالليزر
يتم تصنيف أجهزة التشفير هذه بناءً على إشارة الخرج وتقنية الاستشعار ، ويتم تصنيف التشفير الإضافي والتشفير المطلق على أساس إشارة الإخراج ويتم تصنيف التشفير المغناطيسي والبصري والليزر على أساس تقنية الاستشعار. و يستخدم التشفير هنا هو تزايدي نوع التشفير.
يقوم المشفر المطلق بتخزين معلومات الموقع حتى بعد إزالة الطاقة ، وستكون معلومات الموقع متاحة عندما نطبق الطاقة عليها مرة أخرى.
يوفر النوع الأساسي الآخر ، التشفير التزايدي البيانات عندما يغير المشفر موضعه. لا يمكن تخزين معلومات الموقع.
KY-040 الروتاري التشفير Pinout والوصف
يتم عرض pinouts لجهاز التشفير الدوار من النوع التزايدي KY-040 أدناه. في هذا المشروع ، سنقوم بربط جهاز التشفير الروتاري هذا بالمتحكم الدقيق PIC16F877A من الرقاقة الدقيقة.
يتم استخدام أول دبابيس (أرضي و Vcc) لتشغيل جهاز التشفير ، وعادة ما يتم استخدام مصدر طاقة + 5 فولت. بصرف النظر عن تدوير المقبض في اتجاه عقارب الساعة وعكس اتجاه عقارب الساعة ، يحتوي المشفر أيضًا على مفتاح (نشط منخفض) يمكن الضغط عليه بالضغط على المقبض بالداخل. يتم الحصول على الإشارة من هذا المفتاح من خلال الدبوس 3 (SW). أخيرًا ، يحتوي على دبابيس الإخراج (DT و CLK) التي تنتج أشكال الموجة كما تمت مناقشته أدناه. لقد قمنا بتوصيل برنامج Rotary Encoder هذا سابقًا مع Arduino.
كيف يعمل جهاز التشفير الروتاري
يعتمد الإخراج كليًا على الوسادات النحاسية الداخلية التي توفر الاتصال بـ GND و VCC مع العمود.
هناك جزءان من الروتاري التشفير. عجلة العمود المتصلة بالعمود وتدور في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة اعتمادًا على دوران العمود والقاعدة حيث يتم التوصيل الكهربائي. تحتوي القاعدة على منافذ أو نقاط متصلة بـ DT أو CLK بطريقة أنه عندما تدور عجلة العمود ، فإنها ستربط النقاط الأساسية وتوفر موجة مربعة على كل من منفذ DT و CLK.
سيكون الإخراج مثل عندما يدور العمود-
يوفر منفذان الموجة المربعة ولكن هناك اختلاف طفيف في التوقيت. نتيجة لذلك ، إذا قبلنا الناتج كـ 1 و 0 ، فيمكن أن يكون هناك أربع حالات فقط ، 0 0 ، 1 0 ، 1 1 ، 0 1. تسلسل المخرجات الثنائية يحدد الدوران في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة. مثل ، على سبيل المثال ، إذا كان جهاز التشفير الدوار يوفر 1 0 في حالة الخمول ويقدم 1 1 بعد ذلك ، فهذا يعني أن المشفر يغير موضعه خطوة واحدة في اتجاه عقارب الساعة ، ولكن إذا كان يوفر 0 0 بعد الخمول 1 0 ، يعني أن العمود يغير مواقعه في اتجاه عكس عقارب الساعة بخطوة واحدة.
المكونات مطلوبة
حان الوقت لتحديد ما نحتاجه لربط الروتاري Encoder مع PIC Microcontroller ،
- PIC16F877A
- 4.7 كيلو المقاوم
- 1 كيلو المقاوم
- 10 كيلو وعاء
- مكثف قرص سيراميك 33pF - 2 قطعة
- 20 ميجا هرتز الكريستال
- عرض 16x2
- التشفير الروتاري
- محول 5V.
- مجلس الخبز
- أسلاك التوصيل.
PIC16F877A مخطط حلبة توصيل جهاز التشفير الدوراني
فيما يلي صورة الإعداد النهائي بعد توصيل المكونات وفقًا لمخطط الدائرة:
لقد استخدمنا مقاومًا واحدًا 1K لتباين شاشة LCD بدلاً من استخدام مقياس الجهد. تحقق أيضًا من فيديو العمل الكامل المقدم في النهاية.
شرح الكود
يتم تقديم رمز الموافقة المسبقة عن علم الكامل في نهاية هذا المشروع مع فيديو توضيحي ، وهنا نوضح بعض الأجزاء المهمة من الكود. إذا كنت جديدًا مع PIC Microcontroller ، فاتبع دروس PIC التعليمية من البداية.
كما ناقشنا من قبل ، نحتاج إلى التحقق من المخرجات والتمييز بين المخرجات الثنائية لكل من DT و CLK ، لذلك أنشأنا جزء if-else للعملية.
إذا (Encoder_CLK! = position) { if (Encoder_DT! = position) { // lcd_com (0x01) ؛ عداد ++ ؛ // زيادة العداد الذي سيتم طباعته على lcd lcd_com (0xC0) ؛ lcd_puts ("") ؛ lcd_com (0xC0) ؛ lcd_bcd (1 ، عداد) ؛ } else { // lcd_com (0x01) ؛ lcd_com (0xC0) ؛ عداد--؛ // تقليل العداد lcd_puts ("") ؛ lcd_com (0xC0) ؛ lcd_bcd (1 ، عداد) ؛ // lcd_puts ("يسار") ؛ } }
نحتاج أيضًا إلى تخزين الموضع في كل خطوة. للقيام بذلك ، استخدمنا "موضع" متغير يخزن المركز الحالي.
الموقف = Encoder_CLK ؛ // هو تخزين موضع ساعة المشفر على المتغير. يمكن أن يكون 0 أو 1.
بخلاف ذلك ، يتوفر خيار للإبلاغ عن مفتاح التبديل اضغط على شاشة LCD.
إذا (Encoder_SW == 0) { sw_delayms (20) ؛ // debounce delay if (Encoder_SW == 0) { // lcd_com (1) ؛ // lcd_com (0xC0) ؛ lcd_puts ("مفتاح مضغوط") ؛ // itoa (عداد ، قيمة ، 10) ؛ // lcd_puts (القيمة) ؛
و system_init وظيفة يستخدم لتهيئة دبوس I / O العملية، LCD ولتخزين موقف التشفير الروتاري.
system_init () باطل { TRISB = 0x00 ؛ // PORT B كإخراج ، يستخدم هذا المنفذ لـ LCD TRISDbits.TRISD2 = 1 ؛ TRISDbits.TRISD3 = 1 ، TRISCbits.TRISC4 = 1 ، lcd_init () ، // سيؤدي هذا إلى تهيئة موضع LCD = Encoder_CLK ؛ // Sotred موضع CLK في نظام تهيئة ، قبل بدء حلقة while. }
تتم كتابة وظيفة LCD على مكتبة lcd.c و lcd.h حيث يتم الإعلان عن lcd_puts () و lcd_cmd ().
لإعلان المتغير وبتات التكوين ومقتطفات التعليمات البرمجية الأخرى ، يرجى العثور على الكود الكامل أدناه.