دائرة مقياس سرعة الدوران اردوينو لقراءات دقيقة

جرب أداة القضاء على المشاكل





مقياس سرعة الدوران هو جهاز يقيس RPM أو السرعة الزاوية لجسم دوار. وهو يختلف عن عداد السرعة وعداد المسافات لأن هذه الأجهزة تتعامل مع السرعة الخطية أو العرضية للجسم بينما يتعامل مقياس سرعة الدوران المعروف أيضًا باسم 'tach' مع عدد الدورات في الدقيقة الأساسي.

بقلم عنكيت نيجي



يتكون مقياس سرعة الدوران من عداد وجهاز توقيت يعمل كلاهما معًا على توفير عدد الدورات في الدقيقة. في مشروعنا ، سنفعل نفس الشيء ، باستخدام Arduino وبعض المستشعرات ، سنقوم بإعداد كل من العداد والمؤقت وتطوير آلية سهلة الاستخدام .

المتطلبات الأساسية

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



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

في Arduino Uno ، توجد مؤقتات لا تتبع الوقت فحسب ، بل تحافظ أيضًا على بعض الوظائف المهمة في Arduino. في Uno لدينا 3 مؤقتات تسمى Timer0 و Timer1 و Timer2. هذه العدادات لها الوظائف التالية- • Timer0- لوظائف Uno مثل delay () أو مللي () أو ميكرو () أو delaymicros ().

• Timer1- لعمل مكتبة أجهزة.

• Timer2- للوظائف مثل النغمة () ، وليس واحدًا ().

إلى جانب هذه الوظائف ، تكون هذه العدادات الثلاثة مسؤولة أيضًا عن إنشاء إخراج PWM عند استخدام الأمر analogWrite () في الدبوس المخصص لـ PMW.

مفهوم المقاطعات

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

المغناطيس على عمود المحرك

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

المكونات المطلوبة لمشروع مقياس سرعة الدوران هذا باستخدام Arduino

• مستشعر تأثير القاعة (الشكل 1)

وحدة استشعار تأثير القاعة

• اردوينو أونو

لوحة اردوينو UNO

• مغناطيس صغير

مغناطيس صغير

• أسلاك توصيل

• جسم دوار (عمود المحرك)

محرك بتيار مستمر

إعداد الدائرة

• الإعداد للإنشاء كما يلي-

• في العمود الذي سيتم قياس سرعة دورانه ، يتم تركيب مغناطيس صغير باستخدام مسدس الغراء أو الشريط الكهربائي.

• يحتوي مستشعر Hall Effect على كاشف في المقدمة و 3 دبابيس للتوصيلات.

• دبابيس Vcc و Gnd متصلة بدبوس 5V و Gnd من Arduino على التوالي. يتم توصيل دبوس الإخراج الخاص بالمستشعر بالدبوس الرقمي 2 الخاص بـ Uno لتوفير إشارة الإدخال.

• يتم تثبيت جميع المكونات في لوحة التركيب ويتم توجيه كاشف القاعة من اللوحة.

برمجة

int sensor = 2 // Hall sensor at pin 2
volatile byte counts
unsigned int rpm //unsigned gives only positive values
unsigned long previoustime
void count_function()
{ /*The ISR function
Called on Interrupt
Update counts*/
counts++
}
void setup() {
Serial.begin(9600)
//Intiates Serial communications
attachInterrupt(0, count_function, RISING) //Interrupts are called on Rise of Input
pinMode(sensor, INPUT) //Sets sensor as input
counts= 0
rpm = 0
previoustime = 0 //Initialise the values
}
void loop()
{
delay(1000)//Update RPM every second
detachInterrupt(0) //Interrupts are disabled
rpm = 60*1000/(millis() - previoustime)*counts
previoustime = millis() //Resets the clock
counts= 0 //Resets the counter
Serial.print('RPM=')
Serial.println(rpm) //Calculated values are displayed
attachInterrupt(0, count_function, RISING) //Counter restarted
}

قم بتحميل الكود.

تعرف على الكود

يستخدم مقياس سرعة الدوران لدينا مستشعر تأثير Hall Sensor Hall Effect الذي يعتمد على تأثير Hall المسمى باسم مكتشفها Edwin Hall.

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

RISING - عند استخدام هذا ، يتم استدعاء المقاطعة في كل مرة تنتقل فيها إشارة الإدخال من LOW إلى HIGH.

FALING - عند استخدام هذا ، يتم استدعاء المقاطعة عندما تنتقل الإشارة من HIGH إلى LOW.

لقد استخدمنا RISING ، ما يحدث هو أنه عندما يقترب المغناطيس الموجود في العمود أو الكائن الدوار من كاشف القاعة ، يتم إنشاء إشارة الإدخال ويتم استدعاء المقاطعة ، يبدأ Interrupt وظيفة Interrupt Service Routine (ISR) ، والتي تتضمن زيادة في قيمة التهم وبالتالي العد يحدث.

لقد استخدمنا وظيفة millis () في Arduino و previoustime (متغير) في المراسلات لإعداد المؤقت.

وبالتالي يتم حساب RPM أخيرًا باستخدام العلاقة الرياضية-

RPM = الأعداد / الوقت المستغرق. تحويل المللي ثانية إلى دقائق وإعادة الترتيب نصل إلى الصيغة = 60 * 1000 / (مللي () - وقت سابق) *.

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

يمكن استخدام قيمة RPM التي تم الحصول عليها أيضًا لحساب السرعة العرضية للكائن الدوار باستخدام العلاقة- v = (3.14 * D * N) / 60 m / s.

يمكن أيضًا استخدام قيمة RPM لحساب المسافة المقطوعة بواسطة عجلة دوارة أو قرص.

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




السابق: حلبة سائق السائر باستخدام IC 555 التالى: دارة عداد السعة الرقمية باستخدام Arduino