- المكونات المطلوبة:
- شرح الدائرة:
- مولد الإشارة باستخدام 555 Timer IC:
- بوابة شميت الزناد:
- شرح كود عداد تردد اردوينو:
يجب أن يكون كل هاوٍ إلكتروني تقريبًا قد واجه سيناريو حيث يجب عليه أو عليها قياس تردد الإشارة التي تم إنشاؤها بواسطة ساعة أو عداد أو مؤقت. يمكننا استخدام راسم الذبذبات للقيام بالمهمة ، ولكن لا يمكننا جميعًا تحمل تكلفة جهاز الذبذبات. يمكننا شراء معدات قياس التردد ولكن كل هذه الأجهزة مكلفة وليست للجميع. مع وضع ذلك في الاعتبار ، سنقوم بتصميم عداد تردد بسيط وفعال باستخدام بوابة تشغيل Arduino Uno و Schmitt.
يعد عداد تردد Arduino هذا فعالًا من حيث التكلفة ويمكن صنعه بسهولة ، وسنستخدم ARDUINO UNO لقياس تردد الإشارة ، UNO هو قلب المشروع هنا.
لاختبار مقياس التردد ، سنصنع مولد إشارة وهمي. سيتم إنشاء مولد الإشارة الوهمي هذا باستخدام شريحة مؤقت 555. تولد دائرة المؤقت موجة مربعة سيتم توفيرها لـ UNO للاختبار.
مع وجود كل شيء في مكانه ، سيكون لدينا عداد تردد اردوينو ومولد موجة مربعة. يمكن أيضًا استخدام Arduino لإنشاء نوع آخر من أشكال الموجة مثل موجة جيبية ، موجة أسنان المنشار ، إلخ.
المكونات المطلوبة:
- 555 توقيت IC و 74LS14 بوابة الزناد شميت أو بوابة NOT.
- 1K المقاوم (2 قطعة) ، 100Ω المقاوم
- 100nF مكثف (2 قطعة) ، 1000 درجة فهرنهايت مكثف
- 16 * 2 LCD ،
- وعاء 47K
- اللوح وبعض الموصلات.
شرح الدائرة:
يظهر الرسم التخطيطي لقياس التردد باستخدام Arduino في الشكل أدناه. الدائرة بسيطة ، يتم توصيل شاشة LCD مع Arduino لعرض التردد المقاس للإشارة. يذهب "إدخال الموجة" إلى دائرة مولد الإشارة ، والتي من خلالها نقوم بتغذية الإشارة إلى Arduino. يتم استخدام بوابة الزناد Schmitt (IC 74LS14) لضمان تغذية الموجة المستطيلة فقط في Arduino. لتصفية الضوضاء أضفنا مكثفات عبر الطاقة. يمكن لمقياس التردد هذا قياس ترددات تصل إلى 1 ميجاهرتز.
تم شرح دائرة مولد الإشارة ومشغل شميت أدناه.
مولد الإشارة باستخدام 555 Timer IC:
بادئ ذي بدء ، سنتحدث عن مولد الموجة المربعة 555 IC ، أو هل ينبغي أن أقول 555 Astable Multivibrator. هذه الدائرة ضرورية لأنه مع وجود عداد التردد في مكانه يجب أن يكون لدينا إشارة معروفة ترددها لنا. بدون هذه الإشارة ، لن نتمكن أبدًا من معرفة عمل مقياس التردد. إذا كان لدينا مربع ذي تردد معروف ، فيمكننا استخدام هذه الإشارة لاختبار مقياس تردد Arduino Uno ويمكننا تعديله لإجراء تعديلات من أجل الدقة ، في حالة وجود أي انحرافات. صورة مولد الإشارة باستخدام 555 Timer IC موضحة أدناه:
الدائرة النموذجية 555 في وضع Astable مذكورة أدناه ، والتي استخلصنا منها دائرة مولد الإشارة المعطاة أعلاه.
يعتمد تردد إشارة الخرج على مقاومات RA و RB ومكثف C. يتم إعطاء المعادلة على النحو التالي ،
التردد (F) = 1 / (الفترة الزمنية) = 1.44 / ((RA + RB * 2) * C).
هنا RA و RB قيم مقاومة و C هي قيمة السعة. من خلال وضع قيم المقاومة والسعة في المعادلة أعلاه ، نحصل على تردد الموجة المربعة الناتجة.
يمكن للمرء أن يرى أن RB للمخطط أعلاه تم استبداله بوعاء في دائرة مولد الإشارة ؛ يتم ذلك حتى نتمكن من الحصول على موجة مربعة متغيرة التردد عند الإخراج لاختبار أفضل. من أجل التبسيط ، يمكن للمرء أن يستبدل القدر بمقاوم بسيط.
بوابة شميت الزناد:
نحن نعلم أن جميع إشارات الاختبار ليست موجات مربعة أو مستطيلة. لدينا موجات مثلثة وموجات أسنان وموجات جيبية وما إلى ذلك. مع قدرة UNO على اكتشاف الموجات المربعة أو المستطيلة فقط ، نحتاج إلى جهاز يمكنه تغيير أي إشارات إلى موجات مستطيلة ، وبالتالي نستخدم بوابة Schmitt Trigger. بوابة الزناد Schmitt هي بوابة منطقية رقمية ، مصممة للعمليات الحسابية والمنطقية.
توفر هذه البوابة الإخراج بناءً على مستوى جهد الدخل. يشتمل مشغل Schmitt على مستوى جهد THERSHOLD ، عندما يكون لإشارة الإدخال المطبقة على البوابة مستوى جهد أعلى من THRESHOLD للبوابة المنطقية ، فإن الإخراج يرتفع. إذا كان مستوى إشارة جهد الدخل أقل من THRESHOLD ، فسيكون خرج البوابة منخفضًا. لا نحصل عادةً على مشغل Schmitt بشكل منفصل ، فلدينا دائمًا بوابة NOT تتبع مشغل Schmitt. تم شرح عمل Schmitt Trigger هنا: بوابة Schmitt Trigger
نحن نذهب لاستخدام 74LS14 رقاقة، هذه الشريحة لديها 6 بوابات شميت الزناد في ذلك. هذه البوابات الستة متصلة داخليًا كما هو موضح في الشكل أدناه.
يظهر جدول الحقيقة لبوابة Schmitt Trigger المقلوبة في الشكل أدناه ، وعلينا أن نبرمج UNO لعكس الفترات الزمنية الإيجابية والسلبية في نهاياتها.
الآن سنقوم بتغذية أي نوع من الإشارات إلى بوابة ST ، سيكون لدينا موجة مستطيلة من فترات زمنية معكوسة عند الإخراج ، وسنقوم بتغذية هذه الإشارة إلى UNO.
شرح كود عداد تردد اردوينو:
الكود الخاص بقياس التردد باستخدام اردوينو بسيط للغاية ويمكن فهمه بسهولة. نوضح هنا وظيفة PulseIn وهي المسؤولة بشكل أساسي عن قياس التردد. يحتوي Uno على نبضة خاصة بوظيفة ، والتي تمكننا من تحديد مدة الحالة الإيجابية أو مدة الحالة السلبية لموجة مستطيلة معينة:
Htime = pulseIn (8، عالي) ؛ Ltime = pulseIn (8، منخفض) ؛
تقيس الوظيفة المحددة الوقت الذي يوجد فيه المستوى العالي أو المنخفض في PIN8 من Uno. لذلك في دورة واحدة من الموجة ، سيكون لدينا مدة المستويات الإيجابية والسلبية بالثواني المايكرو. و pulseIn يقيس وظيفة الوقت بالثواني الصغيرة. في إشارة معينة ، لدينا وقت مرتفع = 10 مللي ثانية ووقت منخفض = 30 مللي ثانية (بتردد 25 هرتز). لذلك سيتم تخزين 30000 في Ltime عدد صحيح و 10000 في Htime. عندما نضيفهم معًا ، سيكون لدينا مدة الدورة ، وبعكسها سيكون لدينا التردد.
يتم توفير الكود الكامل والفيديو لمقياس التردد هذا باستخدام Arduino أدناه.