كيف يعمل جهاز التشفير الروتاري ويتفاعل مع الأردوينو

Kyf Y Ml Jhaz Altshfyr Alrwtary Wytfa L M Alardwynw



التشفير الروتاري هو جهاز كهروميكانيكي مهم له استخدامات متنوعة في مجال الإلكترونيات. تشرح هذه المقالة أنواع وعمل المشفر الدوار إلى جانب تفاعله مع Arduino.

ما هو التشفير الروتاري

المشفر الدوار هو جهاز إدخال رقمي يستشعر الموضع الزاوي للمقبض الدوار ويرسل إشارات إلى المتحكم الدقيق أو أي جهاز آخر متصل به. يمكنهم الدوران 360 درجة دون توقف. ويسمى أيضًا جهاز تشفير العمود. يتم استخدامه في الطابعات والإلكترونيات الصوتية والمحركات وأجهزة التحكم.









أنواع أجهزة التشفير الدوارة

يوجد نوعان رئيسيان من أجهزة التشفير الدوارة التي يتم تحديدها بناءً على إشارة الخرج التي تم إنشاؤها بواسطتها. هذه الأنواع تسمى:



التشفير الدوراني التزايدي

يحسب هذا النوع من المشفرات عدد دورات المقبض الدوار على شكل نبضات. عندما يتم تدوير المقبض مرة واحدة ، يتم إنشاء نبضة. لكل نبضة ، يزداد العداد للإشارة إلى الموضع الزاوي للعمود.





التشفير الروتاري المطلق

يعطي هذا النوع من التشفير الموضع الزاوي المطلق للعمود ، حيث يحتوي على رمز منفصل لكل موضع عمود ، ويقيس الزاوية من خلال هذا الرمز. لا يحتاج إلى عداد لإعطاء ناتج من الموضع الزاوي. حتى إذا تم إلغاء تنشيط المشفر الدوار المطلق ، يتم الاحتفاظ بالقيم الخاصة للمواضع الزاوية. إنه أيضًا برنامج تشفير منخفض التكلفة.



عمل التشفير الروتاري

يتكون المشفر الدوار من قرص به مساحات متساوية التباعد متصلة بدبوس مشترك C مؤرض. الدبوسان الآخران A و B هما دبابيس تلامس تلامس C عند تدوير المقبض الدوار. عندما يتم توصيل الدبوس A أو B بالأرض ، يتم إنشاء إشارة. هذه الإشارات التي تم إنشاؤها من دبابيس الإخراج هي 90 درجة خارج الطور. هذا بسبب توصيل الدبوس A بالأرض عند تدوير المقبض في اتجاه عقارب الساعة ، ويتم توصيل الدبوس B بالأرض أولاً عند تدوير المقبض عكس اتجاه عقارب الساعة. لذلك ، يتم تحديد اتجاه دوران المقبض من خلال هذه الوصلات.

إذا كانت دولة ب لا يساوي أ ، ثم يدور المقبض في اتجاه عقارب الساعة.


إذا كانت حالة B تساوي A ، فهذا يعني أن المقبض يدور في عكس اتجاه عقارب الساعة.

تكوين الدبوس لجهاز التشفير الدوار

يعطي الرسم البياني أدناه دبوسًا لجهاز التشفير الدوار الذي يُظهر دبابيس الإخراج A و B ، وهو مفتاح دوار يمكن استخدامه كزر ضغط ، ودبابيس لإمداد الطاقة.

وصف الدبوس للتشفير الدوراني

فيما يلي الوصف المقدم لجميع دبابيس التشفير الدوارة.

خارج B أو CLK

يعطي هذا الدبوس إخراجًا لعدد المرات التي تم فيها تدوير المقبض أو المشفر الدوار. في كل مرة يتم فيها تدوير المقبض ، تكمل CLK دورة من HIGH و LOW. يتم احتسابه كدورة واحدة.

خارج A أو DT

هذا هو دبوس الإخراج الثاني لجهاز التشفير الدوار الذي يحدد اتجاه الدوران. يتخلف 90 درجة عن إشارة CLK. لذلك ، إذا كانت حالتها لا تساوي حالة CLK ، فإن اتجاه الدوران يكون في اتجاه عقارب الساعة ، وإلا يكون عكس اتجاه عقارب الساعة.

يُحوّل

يتم استخدام دبوس التبديل للتحقق مما إذا كان زر الضغط مضغوطًا أم لا.

VCC

هذا الدبوس متصل بمصدر 5 فولت

GND

هذا الدبوس متصل بالأرض

الربط بين التشفير الروتاري والاردوينو

يحتوي المشفر الدوار على خمسة دبابيس. يتم توصيل VCC و GND للمشفّر الدوار بجهاز Arduino. يتم توصيل المسامير المتبقية CLK و DT و SW بدبابيس الإدخال الرقمية في Arduino.

كود اردوينو للتشفير الدوار

// مدخلات التشفير الروتاري
#define CLK_PIN 2
#define DT_PIN 3
#define SW_PIN 4
عداد int = 0 ؛
int CurrentCLKState ؛
int lastCLKState ؛
اتجاه السلسلة الحالي = '' ؛
بدون توقيع طويل lastButtonPressTime = 0 ؛
الإعداد باطل ( ) {
// ضبط دبابيس التشفير مثل المدخلات
pinMode ( CLK_PIN ، INPUT ) ؛
pinMode ( DT_PIN ، INPUT ) ؛
pinMode ( SW_PIN ، INPUT_PULLUP ) ؛
// إعداد جهاز العرض التسلسلي
المسلسل ( 9600 ) ؛
// اقرأ الحالة الأولية لـ CLK
lastCLKState = digitalRead ( CLK_PIN ) ؛
}
حلقة فارغة ( ) {
// اقرأ الحالة الحالية لـ CLK
CurrentCLKState = digitalRead ( CLK_PIN ) ؛
// إذا كان آخر والحالة الحالية لـ CLK مختلفة ، ثم حدث نبضة
// رد على فقط 1 تغيير الحالة لتجنب العد المزدوج
لو ( الحالي ! = lastCLKState && CurrentCLKState == 1 ) {
// إذا كانت حالة DT مختلفة عن حالة CLK ، ثم
// يدور المشفر عكس اتجاه عقارب الساعة ، وبالتالي فإن التناقص
لو ( ديجيتال ريد ( DT_PIN ) ! = currentCLKState ) {
عداد--؛
CurrentDirection = 'اتفاقية الأسلحة التقليدية' ؛
} آخر {
// يتم تدوير جهاز التشفير في اتجاه عقارب الساعة ، وبالتالي زيادة
عداد ++ ؛
CurrentDirection = 'CW' ؛
}
المسلسل ( 'اتجاه الدوران: ' ) ؛
المسلسل ( الاتجاه الحالي ) ؛
المسلسل ( '| قيمة العداد:' ) ؛
المسلسل. println ( عداد ) ؛
}
// تذكر آخر ولاية CLK
lastCLKState = currentCLKState ؛
// اقرأ حالة الزر
int buttonState = digitalRead ( SW_PIN ) ؛
// إذا اكتشفنا إشارة منخفضة ، يتم الضغط على الزر
لو ( buttonState == منخفض ) {
// إذا مرت 50 مللي ثانية منذ آخر نبض منخفض ، فهذا يعني أن ملف
// تم الضغط على الزر وتحريره والضغط عليه مرة أخرى
لو ( ميلي ( ) - lastButtonPressTime > خمسون ) {
المسلسل. println ( 'زر الضغط!' ) ؛
}
// تذكر آخر حدث الضغط على الزر وقت
lastButtonPressTime = ملي ( ) ؛
}
// يضع في تأخير طفيف ل يساعد شجب القراءة
تأخير ( 1 ) ؛
}


في الكود المذكور أعلاه ، يتم فحص حالة دبوس CLK في وظيفة الحلقة (). إذا لم يكن مساويًا لحالته السابقة ، فإنه يظهر أن المقبض الدوار قد تم تدويره. الآن ، للتحقق من اتجاه دوران المقبض ، تتم مقارنة الحالة الحالية لـ CLK مع حالة DT. إذا كانت كلتا الحالتين غير متساويتين ، فهذا يدل على أن المقبض قد تم تدويره في اتجاه عقارب الساعة ويزيد العداد من قيمته لإظهار موضع المقبض الدوار. في الحالة المعاكسة ، تناقص العداد.

خاتمة

المشفرات الدوارة عبارة عن مستشعرات متقدمة للمواضع يمكنها الدوران باستمرار. وهي متوفرة في نوعين: تزايدي ومطلق. يعمل المشفر الدوار عن طريق عد النبضات الناتجة عن دوران المقبض. لها تطبيقات متنوعة في إلكترونيات الحياة اليومية إلى الأتمتة الصناعية.