مقياس سرعة الدوران اردوينو مع التشفير من الطابعة. مقياس سرعة الدوران. مثال على العمل مع المقاوم الضوئي وشاشة LCD HD44780 على اردوينو


مقياس سرعة الدوران هو جهاز يستخدم لقياس عدد دورات الجسم في فترة زمنية معينة. عادةً ما يتم التعبير عن القيمة بالثورات في الدقيقة أو دورة في الدقيقة. في السابق، كانت أجهزة قياس سرعة الدوران عبارة عن أجهزة ميكانيكية بحتة يتم فيها نقل الدوران إلى مقياس سرعة الدوران من خلال اتصال ميكانيكي (كابل أو عمود)، ويتم تحديد عدد الثورات في الدقيقة باستخدام نقل العتادوتم عرضه على نطاق دائري. منذ ظهور الإلكترونيات الحديثة، تغيرت أجهزة قياس سرعة الدوران كثيرًا. توضح هذه المقالة مقياس سرعة الدوران الرقمي غير المتصل على أساس اردوينو. يمكن أيضًا التحكم في سرعة المحرك باستخدام دائرة مماثلة. يتم عرض عدد الدورات في الدقيقة والمعلومات الأخرى على شاشة LCD مقاس 16×2. مخطط كهربائييظهر أدناه مقياس سرعة الدوران الرقمي القائم على Arduino.

مخطط كهربائي


مستشعر دورة في الدقيقة
يشكل المستشعر ترانزستور ضوئي يعمل بالأشعة تحت الحمراء ومصباح LED بالأشعة تحت الحمراء. الترانزستور الضوئي بالأشعة تحت الحمراء هو نوع من الترانزستور الضوئي الذي يستجيب فقط لموجات الأشعة تحت الحمراء. يؤدي استخدام الترانزستور الضوئي بالأشعة تحت الحمراء إلى تجنب تأثير التداخل الضوئي الآخر بيئة. يتم ترتيب الترانزستور الضوئي ومصباح الأشعة تحت الحمراء بالتوازي. يحد المقاوم R2 من التيار عبر الصمام الثنائي للأشعة تحت الحمراء. يتم لصق شريط التوجيه العاكس على الجسم الدوار (العمود أو القرص أو المروحة) بما يتماشى مع المستشعر. لقد استخدمت مروحة تبريد بجهد إمداد يبلغ 9 فولت / 100 مللي أمبير. يجب ألا تتجاوز الفجوة بين المستشعر وشريط التوجيه العاكس 1 سم. عندما يمر شريط التوجيه العاكس أمام المستشعر، تنعكس موجات الأشعة تحت الحمراء مرة أخرى إلى الترانزستور الضوئي. يقوم الترانزستور الضوئي بإجراء المزيد من التوصيلات في لحظة معينة، ونتيجة لذلك، يرتفع الجهد عبر R3 (المقاوم 68K) بسرعة. وستكون النتيجة إشارة يظهر شكلها أدناه عند باعث الترانزستور الضوئي. يمكن تحديد عدد الثورات في الدقيقة عن طريق حساب عدد النبضات الصاعدة في فترة زمنية معينة.


حساب الثورات في الدقيقة
يستخدم Arduino لحساب قيمة RPM وعرض هذه القيمة على شاشة LCD. يتم توصيل باعث الترانزستور الضوئي بدبوس Interrupt 0 (الدبوس الرقمي 2) في Arduino. تم تكوين مقاطعة Arduino ليتم تشغيلها بواسطة حافة صاعدة. ونتيجة لذلك، تتم معالجة المقاطعة لكل نبضة تصاعدية في شكل موجة المرسل. يتم حساب عدد المقاطعات المستلمة في وقت معين عن طريق زيادة المتغير باستخدام برنامج خدمة المقاطعة. يتم تحديد الوقت المنقضي خلال دورة الحساب باستخدام الدالة millis(). تقوم الدالة millis() بإرجاع عدد المللي ثانية التي مرت منذ تشغيل لوحة Arduino. استدعاء الدالة millis() قبل وبعد دورة الحساب وحساب الفرق بينهما يعطي الوقت المنقضي خلال دورة الحساب. القيمة (عدد المقاطعات/المرات في المللي ثانية) * 60000 ستحدد عدد الدورات في الدقيقة (RPM).

التحكم في سرعة المحرك
يتم أيضًا تضمين جهاز للتحكم في سرعة المحرك باستخدام مقياس الجهد في الدائرة. يستخدم الترانزستور Q1 للتحكم في المحرك. يتم توصيل قاعدتها بمنفذ PWM رقم 9 في Arduino عبر المقاوم الذي يحد من التيار R1. يتم توصيل محرك الجهد R4 للتحكم في السرعة بالدبوس التناظري A0 الخاص بـ Arduino. يتم تحويل الجهد عند هذا الطرف إلى قيمة تتراوح بين 0 و1023 باستخدام وظيفة anlogRead. ثم يتم قسمة هذه القيمة على أربعة للحصول على النطاق من 0 إلى 255. بعد ذلك قيمة معينةتتم كتابته إلى PWM pin 9 باستخدام وظيفة anlogWrite. والنتيجة هي موجة مربعة عند الطرف 9 تتناسب دورة عملها مع القيمة المكتوبة باستخدام وظيفة الكتابة التناظرية. على سبيل المثال، إذا كانت القيمة 255، ستكون دورة العمل 100%، وإذا كانت القيمة 127، ستكون دورة العمل حوالي 50%. D1 عبارة عن صمام ثنائي حر و C1 عبارة عن مكثف لقمع الضوضاء (جهاز فصل). يتم عرض عدد الدورات في الدقيقة ودورة العمل على شاشة LCD باستخدام مكتبة LiquidCrystal القياسية. اقرأ هذا المقال: شاشة LCD للواجهة لـ Arduino. يظهر أدناه الكود الكامل لمقياس سرعة الدوران الرقمي القائم على Arduino.

رمز البرنامج
#يشمل شاشات الكريستال السائل السائل (12,11,6,5,4,3); كثافة العمليات بوم=9; وعاء كثافة العمليات=A0; قيمة التعويم = 0؛ كثافة العمليات في المئة. تعويم مراجعة = 0؛ كثافة العمليات في الدقيقة. int oldtime=0; الوقت الحقيقي؛ باطلة isr () // روتين خدمة المقاطعة ( rev ++؛ ) إعداد باطلة () (lcd.begin (16،2)؛ // تهيئة شاشة LCD AttachInterrupt (0، isr، RISING)؛ // إرفاق المقاطعة ) حلقة باطلة () ( تأخير (1000)؛ detachInterrupt (0)؛ // فصل وقت المقاطعة = millis () -oldtime؛ // يجد الوقت rpm = (rev / time) * 60000؛ // يحسب عدد الدورات في الدقيقة oldtime = millis ()؛ / / يحفظ الوقت الحالي rev=0; value=analogRead(pot); // يقرأ قيمة POT للتحكم في السرعة=value/4; 100; // يجد دورة العمل٪ LCD.clear();
ملحوظات
يمكن تزويد لوحة Arduino بمصدر طاقة 9 فولت عبر مقبس طاقة خارجي.
يمكن توفير جهد 5 فولت المطلوب لبعض مكونات الدائرة من مصدر 5 فولت على لوحة Arduino.
تستخدم المروحة المستخدمة جهدًا كهربائيًا يبلغ 9 فولت/100 مللي أمبير. يمكن للترانزستور 2N2222 أن يتحمل تيارًا يصل إلى 800 مللي أمبير فقط. ضع ذلك في الاعتبار عند اختيار الحمل.
شاشة LCD المستخدمة هي JHD162A.
يمكن استخدام مقياس الجهد R5 لضبط تباين شاشة LCD. عند توصيله، لن يتم عرض أي شيء على الشاشة. اضبط R5 حتى تظهر الصورة على الشاشة. يتراوح الجهد الأمثل على منزلق الجهد R5 من 0.4 إلى 1 فولت.
تمت إزالة الترانزستور الضوئي بالأشعة تحت الحمراء والصمام الثنائي للأشعة تحت الحمراء من وحدة مقاطعة الصور LTH-1550.
يجب تغطية السطح الجانبي للترانزستور الضوئي بشريط كهربائي.
يظهر موضع المستشعر في الشكل أدناه.

يصف هذا جهازًا رقميًا يقيس سرعة السيارة وسرعة العمود المرفقي لمحركها. المؤشر عبارة عن شاشة LCD من النوع 1602A، وهو قياسي، استنادًا إلى وحدة التحكم HD44780.

يعني التعيين 1602A في الواقع أنه موجود على سطرين يتكون كل منهما من 16 حرفًا. تم شراء المؤشر من موقع Aliexpress، وتم العثور عليه من خلال البحث عن "HD44780" (الأسعار تبدأ من 81 روبل). كما ذكرنا سابقًا، يحتوي هذا المؤشر على سطرين. لذلك، في السطر العلوي يظهر الجهاز سرعة السيارة، وفي السطر السفلي - سرعة المحرك.

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

تعتمد دائرة الجهاز على لوحة ARDUINO UNO الجاهزة، والتي يوجد عليها متحكم ATMEGA328، بالإضافة إلى جميع "الأنابيب" اللازمة لتشغيله، بما في ذلك مبرمج USB ومصدر الطاقة.

تكلفة ARDUINO UNO على Aliexpress تبدأ من 200 روبل. وصف لوحة ARDUINO UNO وكذلك برمجةلأنه، والاتصال بجهاز كمبيوتر شخصي، قدمه المؤلف في L.1، لذلك إذا كان أي شخص لا يعرف ما هو ARDUINO و"ما الذي يتم تناوله به"، فتأكد من قراءة المقالة في L.1 أولاً.

يتم توصيل الجهاز عن طريق الطاقة بمخرج مفتاح الإشعال بالسيارة، ويستقبل الإشارات من حساسات هول الخاصة به، أحدها حساس الإشعال، والثاني حساس السرعة.

رسم تخطيطي

يمكن للجهاز أن يعمل فقط في السيارة التي تحتوي على محرك حقن (لا تحتوي السيارات المكربنة على مستشعر سرعة، ولا تحتوي جميعها على مستشعر إشعال). يظهر مخطط الجهاز في الشكل 1. في هذا الشكل، تظهر لوحة ARDUINO UNO بشكل تخطيطي على أنها "منظر علوي".

أرز. 1. رسم تخطيطيعداد السرعة ومقياس سرعة الدوران على أساس اردوينو.

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

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

أجهزة استشعار السرعة مختلفة، ولكن في الغالب، وخاصة بالنسبة للسيارات المحلية، فإنها تعطي 6000 نبضة لكل كيلومتر. ورغم أن هناك بعضها يعطي 2500 نبضة لكل كيلومتر، فربما هناك البعض الآخر.

برنامج

يرد في الجدول 1 برنامج C++ مع التعليقات التفصيلية. يعتمد تشغيل البرنامج على قياس فترة النبضات القادمة من المستشعرات والحساب اللاحق للسرعة وسرعة دوران العمود المرفقي.

الجدول 1. كود المصدرالبرامج.


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

حيث T هي الفترة بالثواني، وF هي السرعة بالكيلومتر/الساعة. وبما أن الفترة تقاس بالميكروثانية فإن الصيغة الفعلية هي:

إذا كان الحساس 2500 نبضة لكل كيلومتر (ياباني)، فستكون الصيغة كما يلي:

وعليه، وبما أن الفترة تقاس بالميكروثانية:

لقياس سرعة العمود المرفقي، يتم استخدام الصيغة:

حيث T هي الفترة بالثواني، وF هي سرعة دوران العمود المرفقي بعدد الدورات في الدقيقة. وبما أن الفترة تقاس بالميكروثانية، فإن الصيغة الفعلية هي:

وبعد ذلك، يتم عرض النتائج في الأسطر المقابلة لشاشة LCD. يشار إلى وحدات القياس بـ "كم/ساعة" و"ob/tip" (إذا لم تعجبك، يمكنك تغييرها).

إذا لم تكن هناك إشارة إدخال، على سبيل المثال، تم تشغيل الإشعال، ولكن لم يتم تشغيل المحرك أو قيادته، ففي الخطوط التي لا توجد فيها إشارة سيكون هناك نقش "inf".

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

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

لكن من الأفضل معرفة معلمات مستشعر السرعة. ثم قم بحساب الرقم الذي قسمته على الفترة في البرنامج. دعنا نشير إلى هذا الرقم X، وعدد النبضات لكل كيلومتر N. ثم يمكن حساب X باستخدام الصيغة التالية:

س = 3600000000 / ن

على سبيل المثال، إذا كان المستشعر يعطي، على سبيل المثال، 2500 نبضة لكل كيلومتر:

س= 3600000000 / 2500 = 1440000

أو إذا كان المستشعر يعطي 6000 نبضة لكل كيلومتر:

س= 3600000000 / 6000 = 600000

ختاماً

في حالة حدوث خلل في الجهاز، قد يكون من الضروري تحسين وضع التشغيل لمراحل الإدخال على الترانزستورات VT1 وVT2، على التوالي، من خلال تحديد مقاومات المقاومات R3 وR6، وكذلك سعات المكثفات C2 وS3.

كارافكين ف.رك-12-16.

الأدب:

1. Karavkin V. شجرة عيد الميلاد المتعرية على ARDUINO كعلاج للخوف من المتحكمات الدقيقة. ر.ك-11-2016.

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

في هذه المقالة، سننظر في كيفية استخدام جهاز إرسال واستقبال الأشعة تحت الحمراء لصنع مقياس سرعة الدوران باستخدام Arduino. يتم عرض النتيجة على شاشة LCD مقاس 16 × 2.

الهدف من هذا المشروع هو إنشاء نظام بمدخل واحد ومخرج واحد. توجد عند مدخل الجهاز إشارة تتغير من المستوى العالي (+5V) إلى المستوى المنخفض (+0V) عند انقطاع الاتصال. وفقا لهذه الإشارة، سوف يقوم اردوينو بزيادة قيمة العداد الداخلي. ثم يتم تنفيذها معالجة إضافيةوالحساب، وعندما ينقطع الزناد، سيتم عرض عدد الدورات في الدقيقة المحسوب على شاشة LCD.

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

عناصر:

مجلس التنمية

المقاوم الانتهازي 5 كيلو أوم

صداري

موصلات SIP

2 × 2N2222 ترانزستور NPN

الصمام بالأشعة تحت الحمراء

الترانزستور الضوئي

مقاومة 10 أوم

المقاوم 100 كيلو أوم

المقاوم 15 كيلو أوم أو 16 كيلو أوم

مروحة الكمبيوتر

قائمة مفصلة بالعناصر

جميع العناصر المستخدمة في المشروع مذكورة أعلاه، لكنني سأصف وظائف العناصر الرئيسية بمزيد من التفصيل.

اردوينو أونو

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

ال سي دي 16×2

بمجرد قيام Arduino بحساب عدد الدورات في الدقيقة، سيتم عرض هذه القيمة على الشاشة بطريقة سهلة الاستخدام.

المقاوم الانتهازي 5 كيلو أوم

سيتم استخدام أداة التشذيب هذه لضبط تباين شاشة LCD مقاس 16 × 2. إنه يوفر جهدًا تناظريًا يتراوح من 0 إلى +5 فولت، مما يسمح لك بضبط سطوع شاشة LCD.

الأشعة تحت الحمراء LED والترانزستور الضوئي

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

2N3904 و 2N3906

تُستخدم هذه الترانزستورات لتحويل مستوى الإشارة من أجل توفير نبضات خرج من الترانزستور الضوئي إلى الاردوينو، حيث لا يوجد جهد آخر غير +0 و +5V.

رسم تخطيطي


في الدائرة، تم تبسيط واجهة الاتصال مع شاشة LCD وتحتوي على خطي تحكم و4 خطوط بيانات فقط.

ميزات المخطط

واجهة LCD مقاس 16×2

يتم توصيل 2 دبابيس تحكم و 4 لنقل البيانات من Arduino إلى شاشة LCD. هذا هو ما يخبر شاشة LCD بما يجب القيام به ومتى يتم ذلك.

دائرة كسر شعاع الأشعة تحت الحمراء

تنتقل إشارة كسر شعاع الأشعة تحت الحمراء إلى الرقمية الثانية دبوس اردوينو. يؤدي هذا إلى مقاطعة Arduino، مما يسمح له بحساب النبض والسماح لمقياس سرعة الدوران باستقبال البيانات.

مكتبة اردوينو LCD

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

للتحضير، قم بإلقاء نظرة على الكود الموجود أدناه، والذي يستخدم هذه المكتبة لعرض "Hello, World!" في مقياس سرعة الدوران سوف نستخدم رمزًا مشابهًا، خاصة: "lcd.print(millis()/1000);".


افهم وظائف مكتبة شاشات الكريستال السائل هذه بأكبر قدر ممكن من التفاصيل قبل المضي قدمًا. إنها ليست معقدة للغاية وموثقة جيدًا على موقع Arduino الإلكتروني.

حساب دورة في الدقيقة باستخدام اردوينو

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

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

وقت الثورة الأولى = P * (μS/الثورة)

دورة في الدقيقة = دورة في الدقيقة = 60,000,000 * (ميكروسيمنز/دقيقة) * (1/P) = (60,000,000 / ف) * (دورة في الدقيقة)

لحساب RPM سوف نستخدم الصيغة المذكورة أعلاه. الصيغة دقيقة، وتعتمد الدقة على مدى قدرة Arduino على تتبع الوقت بين المقاطعات وحساب عدد الدورات الكاملة.

تجميع الدائرة

في الصورة أدناه يمكنك رؤية كل شيء التفاصيل الضروريةوالقافزات كما في الرسم التخطيطي.


أولاً، قم بتوصيل +5V وخطوط البيانات/التحكم الخاصة بشاشة LCD. ثم شاشة LCD ومقياس جهد التباين ومصباح الطاقة LED.


يتم تجميع قاطع الدائرة لشعاع الأشعة تحت الحمراء. حاول الحفاظ على مسافة بين مؤشر LED IR والترانزستور الضوئي. توضح هذه الصورة المسافة بين مصباح IR LED والترانزستور الضوئي حيث سأضع مروحة الكمبيوتر.


ما يكفي من الحديث عن الأجهزة! لنبدأ في تنفيذ البرنامج الثابت/البرنامج لنرى كيف يعمل الجهاز!

جزء البرمجيات

هناك جزأين رئيسيين من الكود، وهما موضحان بالتفصيل أدناه:

دورة تحديث شاشات الكريستال السائل الأساسية

تحديث وقت المقاطعة

الدورة الرئيسية تحسب الثورات والتحديثات لشاشة LCD. نظرًا لأن الحلقة الرئيسية عبارة عن حلقة while(1) عملاقة، فستكون قيد التشغيل دائمًا، وسيتم حساب عدد الدورات في الدقيقة، وسيتم تحديث شاشة LCD عدة مرات في الثانية. تقوم الوظيفة الموجودة في المقاطعة بحساب الوقت بين مقاطعات الأشعة تحت الحمراء، بحيث يمكنك حساب عدد الدورات في الدقيقة في الحلقة الرئيسية.

تذكر أن مروحة الكمبيوتر تحتوي على 7 شفرات، لذا فإن مقياس سرعة الدوران هذا مصمم للعمل مع تلك المراوح فقط. إذا كانت مروحتك أو أي جهاز آخر ينتج 4 نبضات فقط في كل دورة، فقم بتغيير الرمز إلى "(الوقت*4)".

إليك مقطع فيديو توضيحي لكيفية عمل مقياس سرعة الدوران.

تعمل المروحتان بسرعة 3000 دورة في الدقيقة و2600 دورة في الدقيقة تقريبًا، مع وجود خطأ يبلغ حوالي +/- 100 دورة في الدقيقة.

مراجعة مقياس سرعة الدوران على اردوينو

تولد المروحة نبضات متقطعة، وعند الإخراج نرى عدد الدورات في الدقيقة. على الرغم من أن الدقة ليست 100%، ولكن حوالي 95%، مع تكلفة العناصر التي تبلغ 10 دولارات، فمن المنطقي بناء مقياس سرعة الدوران هذا على Arduino.

ماذا تفعل الآن؟

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

خاتمة

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

المقال الأصلي على إنجليزي(ترجمة: الكسندر كاسيانوفلموقع cxem.net)

تم تصميم وحدة استشعار سرعة المحرك بشكل أساسي لاكتشاف سرعة دوران عمود المحرك الكهربائي. يمكن لهذه الوحدة، جنبًا إلى جنب مع وحدة التحكم الدقيقة، تحديد عدد النبضات وموضع العمود، بالإضافة إلى السرعة.



عادة، تقوم أجهزة الاستشعار بقياس الكمية عن طريق تسجيل أحداث معينة، ثم ربط عدد الأحداث بالفترة الزمنية التي حدثت خلالها.


لذلك في هذه الحالة، يتم قياس السرعة - تُفهم الأحداث هنا على أنها نبضات يتم تلقيها نتيجة تشغيل المستشعر البصري أثناء دوران القرص المزود بفتحات. يتكون المستشعر من LED وترانزستور ضوئي، والذي يستشعر وجود أو عدم وجود ضوء من LED.


مخطط


يمكن استخدام الدائرة المقدمة لإرسال نبضات مسجلة إلى وحدة التحكم الدقيقة. أساس المخطط هو جهاز استشعار بصري OS25B10 (OC1) مع مخرج LED وترانزستور ضوئي.


التالي هو LM393 المزدوج IC (IC1)، الذي تم تكوينه كمشغل Schmitt بسيط. الصمام الأخضريشير (LED1) إلى وجود الجهد المطبق على الدائرة، ويراقب مؤشر LED الأحمر (LED2) إخراج وحدة استشعار سرعة المحرك. مُستَحسَن جهد التشغيلالوحدة من 4.5 إلى 5.5 فولت.




لاحظ أنه يتم استخدام المقاوم R1 (180 أوم) هنا للحد من تيار تشغيل LED داخل المستشعر البصري OS25B10 (OC1). إذا لزم الأمر، يمكنك تغيير قيمته للنموذج الأولي الخاص بك. يمكنك أيضًا ضبط قيمة المقاوم R2 (10 كيلو أوم) للحصول على الجهد المطلوب لدائرتك. المقاوم R7 (10K) هو مقاوم سحب اختياري.


قرص التشفير


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

مستشعر سرعة الدوراننادي كرة القدم. -03

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

تركيب مستشعر سرعة الدوران FC-03 على هيكل الروبوت ذو العجلات.

صفات

مصدر الطاقة 3.3 - 5 فولت
عرض الخلوص للقرص المشقوق 5 مم
أبعاد الوحدة 38 × 14 × 7 ملم
فتحة تركيب لبرغي 3 مم

اتصالاتFC-03



يتم وضع علامة على جهات الاتصال على السبورة.

VCC - مصدر الطاقة.
أرض- سلك مشترك، إمدادات الطاقة السلبية.
افعل - إخراج إشارة النبض.
AO - الإخراج المباشر من optocoupler ITR9608.

مبدأ التشغيل


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

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

يستخدم مستشعر سرعة الدوران FC-03 لقياس سرعة الدوران. لا يمكن استخدامه لتحديد اتجاه الدوران. يتم تثبيت قرص به ثقوب على عمود المحرك أو علبة التروس. تحتوي وحدة optocoupler على فتحة بعرض 5 مم. عندما يدور القرص، كما هو موضح في الرسم المتحرك، تتناوب الثقوب وأجزاء اللوحة باستمرار في الفتحة. يقوم المستشعر بتحويل تناوب عناصر القرص إلى نبضات كهربائية. تجعل إلكترونيات الوحدة إشارة المستشعر مناسبة للإدراك الرقمي رقائق المنطقأو متحكم.

مخططنادي كرة القدم.-03




تنتقل الإشارة من ITR9608 إلى مدخل المقارنة LM393، ومن خرجها إلى الطرف D0 ويذهب مؤشر LED إشارة رقميةتتكون من مستويات المنطق العالية والمنخفضة. تأتي إشارة الإخراج A0 مباشرة من ITR9608 دون التحويل إلى المستويات المنطقية. يتيح لك استخدام المقارنة LM393 الحصول على حواف نبضية ناعمة وزيادة الحمل الحالي لمخرج المستشعر بشكل طفيف، وتثبيت مؤشر LED في الدائرة يشير إلى حالة الإخراج.

إشارة

هناك 2 المصابيح على متن الطائرة. يُظهر أحدهما تفعيل مستشعر سرعة الدوران FC-03، والآخر يُظهر عدم وجود عائق في المستشعر. عند تشغيل الجهاز لأول مرة، يجب أن يضيء كلا مؤشري LED. عند إدخال لوحة معدنية إلى المساحة الحرة للقاطع، يجب أن ينطفئ مصباح LED واحد.

طلب

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


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

#define PIN_DO 2 // اضبط الدبوس المستخدم في Arduino
نبضات كثافة العمليات غير الموقعة؛
تعويم دورة في الدقيقة.
غير موقعة منذ وقت طويل؛
#تعريف_HOLES_DISC 15

عداد باطلة ()
{
نبضات++;
}

الإعداد الفارغ ()
{
Serial.begin(9600);
pinMode(PIN_DO, INPUT);
البقول = 0؛
timeOld = 0;

}

حلقة باطلة ()
{
إذا (مللي () - الوقت القديم> = 1000)
{
detachInterrupt(digitalPinToInterrupt(PIN_DO));
دورة في الدقيقة = (نبضات * 60) / (HOLES_DISC)؛
Serial.println(دورة في الدقيقة);

TimeOld = ميلي ()؛
البقول = 0؛
AttachInterrupt(digitalPinToInterrupt(PIN_DO), counter, FALLING);