جدول المحتويات:

مولد اردوينو الموجي: 5 خطوات (بالصور)
مولد اردوينو الموجي: 5 خطوات (بالصور)

فيديو: مولد اردوينو الموجي: 5 خطوات (بالصور)

فيديو: مولد اردوينو الموجي: 5 خطوات (بالصور)
فيديو: كيفية ربط شاشة الفولت و الامبير How to connect voltage and amps screen 2024, شهر نوفمبر
Anonim
مولد اردوينو الموجي
مولد اردوينو الموجي

تحديث فبراير 2021: تحقق من الإصدار الجديد بمعدل أخذ العينات 300 مرة ، استنادًا إلى Raspberry Pi Pico

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

www.instructables.com/id/Arduino-Waveform-…

www.instructables.com/id/10-Resister-Ardui…

فيما يلي وصف لواحد آخر بالميزات التالية:

* أشكال موجية دقيقة: إخراج 8 بت باستخدام R2R DAC ، شكل 256 عينة

* سريع: معدل أخذ العينات 381 كيلو هرتز

* الدقة: 1mHz خطوات نطاق التردد. دقيقة مثل بلورة اردوينو.

* عملية سهلة: يمكن ضبط شكل الموجة والتردد باستخدام جهاز تشفير دوار واحد

* مدى واسع من السعات: مللي فولت إلى 20 فولت

* 20 شكل موجي محدد مسبقًا. مباشرة لإضافة المزيد.

* سهل الصنع: Arduino Uno أو Nano plus المكونات القياسية

الخطوة 1: الاعتبارات الفنية

عمل إشارة تناظرية

أحد عيوب Arduino Uno و Nano هو أنه لا يحتوي على محول من رقمي إلى تمثيلي (DAC) ، لذلك لا يمكن جعله يخرج جهدًا تناظريًا مباشرة على المسامير. أحد الحلول هو سلم R2R: 8 دبابيس رقمية متصلة بشبكة المقاوم بحيث يمكن الوصول إلى 256 مستوى من المخرجات. من خلال الوصول المباشر إلى المنفذ ، يمكن لـ Arduino ضبط 8 دبابيس في وقت واحد بأمر واحد. بالنسبة لشبكة المقاوم ، هناك حاجة إلى 9 مقاومات بقيمة R و 8 مقاومات بقيمة 2R. لقد استخدمت 10 كيلو أوم كقيمة لـ R ، والتي تحافظ على التيار من المسامير إلى 0.5 مللي أمبير أو أقل. أعتقد أن R = 1kOhm يمكن أن تعمل أيضًا ، نظرًا لأن Arduino يمكنه بسهولة توصيل 5 مللي أمبير لكل دبوس ، و 40 مللي أمبير لكل منفذ. من المهم أن تكون النسبة بين المقاومات R و 2R هي 2. ويمكن تحقيق ذلك بسهولة أكبر عن طريق وضع مقاومين من القيمة R في السلسلة ، ليصبح المجموع 25 مقاوماً.

تراكم الطور

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

أخذ العينات بسرعة

تسمح المقاطعات بأخذ العينات في أوقات محددة جيدًا ، لكن الحمل الزائد للمقاطعات يحد من تردد أخذ العينات إلى ~ 100 كيلو هرتز. تستغرق الحلقة اللانهائية لتحديث المرحلة ، وتجربة شكل الموجة وتعيين المسامير 42 دورة ساعة ، وبالتالي تحقيق معدل أخذ العينات من 16 ميجا هرتز / 42 = 381 كيلو هرتز. يؤدي تدوير أو دفع المشفر الدوار إلى تغيير الدبوس والمقاطعة التي تخرج من الحلقة لتغيير الإعداد (شكل الموجة أو التردد). في هذه المرحلة ، يُعاد حساب 256 رقمًا في المصفوفة بحيث لا يلزم إجراء حسابات فعلية لشكل الموجة في الحلقة الرئيسية. الحد الأقصى للتردد المطلق الذي يمكن إنشاؤه هو 190 كيلو هرتز (نصف معدل أخذ العينات) ولكن بعد ذلك توجد عينتان فقط في كل فترة ، لذلك لا يوجد الكثير من التحكم في الشكل. وبالتالي لا تسمح الواجهة بتعيين التردد فوق 100 كيلو هرتز. عند 50 كيلو هرتز ، هناك 7-8 عينات لكل فترة وعند 1.5 كيلو هرتز وأقل من جميع الأرقام الـ 256 المخزنة في المصفوفة يتم أخذ عينات منها كل فترة. بالنسبة للأشكال الموجية حيث تتغير الإشارة بسلاسة ، على سبيل المثال الموجة الجيبية ، لا يمثل تخطي العينات مشكلة. ولكن بالنسبة للأشكال الموجية ذات المسامير الضيقة ، على سبيل المثال الموجة المربعة ذات دورة العمل الصغيرة ، فهناك خطر من أن فقدان عينة واحدة للترددات فوق 1.5 كيلو هرتز يمكن أن يؤدي إلى عدم تصرف شكل الموجة بالشكل المتوقع

دقة التردد

يتناسب الرقم الذي تزداد به المرحلة في كل عينة مع التردد. وبالتالي يمكن ضبط التردد على دقة 381 كيلو هرتز / 2 ^ 32 = 0.089 ميجا هرتز. من الناحية العملية ، لا توجد حاجة إلى مثل هذه الدقة على الإطلاق ، لذا فإن حدود الواجهة لتعيين التردد في خطوات تبلغ 1 ميجاهرتز. يتم تحديد الدقة المطلقة للتردد من خلال دقة تردد ساعة Arduino. يعتمد هذا على نوع Arduino ولكن معظمه يحدد ترددًا يبلغ 16.000 ميجاهرتز ، لذا فإن الدقة تبلغ ~ 10 ^ -4. يسمح الرمز بتعديل نسبة التردد وزيادة الطور لتصحيح الانحرافات الصغيرة لافتراض 16 ميجا هرتز.

التخزين المؤقت والتضخيم

تتمتع شبكة المقاوم بمقاومة عالية للإخراج ، لذلك ينخفض جهد الخرج بسرعة إذا تم توصيل الحمل. يمكن حل ذلك عن طريق التخزين المؤقت أو تضخيم الإخراج. هنا ، يتم التخزين المؤقت والتضخيم باستخدام opamp. لقد استخدمت LM358 لأن لدي بعضًا منها. إنها عملية بطيئة (معدل كبير 0.5 فولت لكل ميكروثانية) لذلك عند التردد العالي والسعة العالية يتم تشويه الإشارة. الشيء الجيد هو أنه يمكنه التعامل مع الفولتية القريبة جدًا من 0 فولت. ومع ذلك ، يقتصر جهد الخرج على ~ 2 فولت أسفل السكة ، لذا فإن استخدام + 5 فولت يحد من جهد الخرج إلى 3 فولت. الوحدات النمطية المتدرجة مدمجة ورخيصة. التغذية + 20V إلى opamp ، يمكن أن تولد إشارات بجهد يصل إلى 18V. (ملاحظة: يشير المخطط التخطيطي إلى LTC3105 لأن هذه كانت الخطوة الوحيدة التي وجدتها في Fritzing. في الواقع ، استخدمت وحدة MT3608 ، انظر الصور في الخطوات التالية). اخترت تطبيق توهين متغير على خرج R2R DAC ثم استخدم أحد opamps لتخزين الإشارة بدون تضخيم والآخر للتضخيم بمقدار 5.7 ، بحيث يمكن أن تصل الإشارة إلى أقصى إخراج يبلغ حوالي 20 فولت. تيار الخرج محدود نوعًا ما ، ~ 10 مللي أمبير ، لذلك قد تكون هناك حاجة إلى مكبر صوت أقوى إذا كانت الإشارة لتشغيل مكبر صوت كبير أو مغناطيس كهربائي.

الخطوة 2: المكونات المطلوبة

لمولد الموجي الأساسي

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

شاشة LCD مقاس 16 × 2 + أداة تشذيب 20 كيلو أوم ومقاومة سلسلة 100 أوم للإضاءة الخلفية

جهاز تشفير دوار خماسي السنون (مع زر ضغط مدمج)

25 مقاومات 10 كيلو أوم

للمخزن / مكبر للصوت

LM358 أو opamp مزدوجة أخرى

وحدة تصعيد على أساس MT3608

50 كيلو أوم المقاوم المتغير

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

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

1muF مكثف

الخطوة الثالثة: البناء

بناء
بناء
بناء
بناء

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

يحتوي برنامج التشفير الذي استخدمته على 5 دبابيس ، 3 على جانب واحد ، و 2 على الجانب الآخر. الجانب الذي يحتوي على 3 دبابيس هو المشفر الفعلي ، والجانب الذي يحتوي على دبابيس هو زر الضغط المدمج. على الجانب ذي الثلاثة سنون ، يجب توصيل الدبوس المركزي بالأرض ، والدبوسان الآخران بـ D10 و D11. على الجانب ثنائي السنون ، يجب توصيل دبوس واحد بالأرض والآخر بـ D12.

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

R - إشارة خام من R2R DAC

ب - إشارة مخزنة

أ- تضخيم الإشارة

T - إشارة عداد الوقت من دبوس 9

ز - الأرض

+ - الجهد "العالي" الموجب من وحدة التصعيد

الخطوة 4: الكود

الكود ، رسم Arduino ، مرفق ويجب تحميله على Arduino.

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

يقوم الكود بتعيين إشارة 1 كيلو هرتز على الطرف D9 باستخدام TIMER1. هذا مفيد للتحقق من توقيت الإشارة التناظرية. هكذا اكتشفت أن عدد دورات الساعة هو 42: إذا افترضت إما 41 أو 43 ، وقمت بتوليد إشارة 1 كيلو هرتز ، فمن الواضح أن لها ترددًا مختلفًا عن الإشارة الموجودة على دبوس D9. مع القيمة 42 تتطابق تمامًا.

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

يقول المترجم: "يستخدم Sketch 7254 بايت (23٪) من مساحة تخزين البرنامج. الحد الأقصى 30720 بايت. تستخدم المتغيرات العامة 483 بايت (23٪) من الذاكرة الديناميكية ، مما يترك 1565 بايت للمتغيرات المحلية. الحد الأقصى هو 2048 بايت. لذلك ، هناك مساحة كافية لتعليمات برمجية أكثر تعقيدًا. احذر من أنه قد يتعين عليك اختيار "ATmega328P (أداة تحميل التشغيل القديمة)" للتحميل بنجاح إلى Nano.

الخطوة 5: الاستخدام

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

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

يمكن تنظيم السعة باستخدام مقياس الجهد ويمكن استخدام إما الإشارة المخزنة مؤقتًا أو المكبرة.

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

بالنسبة للترددات المنخفضة جدًا ، يمكن تصور الإخراج باستخدام LED في سلسلة بمقاوم 10 كيلو أوم. يمكن سماع ترددات الصوت بواسطة مكبر الصوت. تأكد من ضبط الإشارة صغيرة جدًا ~ 0.5 فولت ، وإلا فإن التيار يصبح مرتفعًا جدًا وتبدأ الإشارة في القطع.

موصى به: