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

قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت: 4 خطوات
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت: 4 خطوات

فيديو: قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت: 4 خطوات

فيديو: قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت: 4 خطوات
فيديو: #11 اردوينو: إستعمال المداخل التناظرية Arduino analogRead 2024, يوليو
Anonim
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت

مرحبا يا شباب،

هذا هو الجزء الثاني من تعليماتي الأخرى (التي كانت صعبة للغاية) ، في الأساس ، في هذا المشروع ، استخدمت ADC و TIMERS على Arduino لتحويل الإشارة الصوتية إلى إشارة PWM.

هذا أسهل بكثير من Instructable السابق ، إليك رابط أول Instructable الخاص بي إذا كنت تريد أن ترى. حلقة الوصل

لفهم نظرية الإشارة الصوتية ومعدل البت وعمق البت ومعدل أخذ العينات ، يمكنك قراءة النظرية في تعليمي الأخير حول Instructable. الرابط أعلاه.

الخطوة 1: الأشياء التي نحتاجها لهذا المشروع (المتطلبات)

1. Arduino Board (يمكننا استخدام أي لوحة (328 ، 2560) ، أي Mega ، و Uno ، و Mini ، إلخ ولكن مع دبابيس مختلفة محددة)

2. جهاز كمبيوتر مع Arduino Studio.

3. اللوح أو اللوح

4. توصيل الأسلاك

5. TC4420 (سائق موسفيت أو شيء من هذا القبيل)

6. Power Mosfet (قناة N أو P ، يرجى توصيل الأسلاك وفقًا لذلك) (لقد استخدمت قناة N)

7. مكبر الصوت أو محول Flyback (نعم تقرأها بشكل صحيح !!)

8. مصدر طاقة مناسب (0-12 فولت) (لقد استخدمت مزود طاقة ATX الخاص بي)

9. المشتت الحراري (لقد أنقذت من جهاز الكمبيوتر القديم).

10. مضخم صوت (مضخم صوت عادي) أو دائرة مكبر للصوت.

الخطوة 2: نظرية ADC إلى PWM

نظرية ADC إلى PWM
نظرية ADC إلى PWM
نظرية ADC إلى PWM
نظرية ADC إلى PWM

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

ADC (محول تناظري إلى رقمي) كما يحدد الاسم ، يقوم ADC بتحويل الإشارة التناظرية إلى عينات رقمية. ولأردوينو بعمق 10 بت كحد أقصى. لكن بالنسبة لهذا المشروع ، سنستخدم عينات 8 بت.

أثناء استخدام ADC من Arduino ، علينا أن نأخذ في الاعتبار ADC_reference Voltage.

يقدم Arduino Uno 1.1 فولت ، 5 فولت (مرجع داخلي ، يمكن تحديده في الكود) أو مرجع خارجي (يتعين علينا تطبيقه خارجيًا على AREF pin).

وفقًا لتجربتي ، يجب استخدام 2.0 فولت كحد أدنى كجهد مرجعي للحصول على نتيجة جيدة من ADC. نظرًا لأن 1.1 فولت لم يكن جيدًا على الأقل بالنسبة لي. (خبرة شخصية)

* هام * * هام ** مهم ** مهم ** مهم *

نحتاج إلى استخدام إشارة صوتية مضخمة من مضخم أو دائرة مضخم بجهد ذروة (أقصى جهد) يبلغ 5 فولت

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

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

لذلك ، سنستخدم معدل أخذ العينات البالغ 33.33 كيلو هرتز في هذا المشروع ، عن طريق ضبط ساعة ADC على 500 كيلو هرتز ، ولفهم كيفية ذلك ، يجب أن نرى صفحة توقيت ADC في ورقة البيانات الخاصة بشريحة Atmega (328p).

يمكننا أن نرى ذلك ، نحتاج إلى 13.5 دورة ساعة ADC لإكمال عينة واحدة بأخذ العينات تلقائيًا. بتردد 500 كيلو هرتز ، فهذا يعني 1/500 كيلو هرتز = 2uS لدورة ADC واحدة ، مما يعني أن هناك حاجة إلى 13.5 * 2uS = 27uS لإكمال عينة عند استخدام أخذ العينات التلقائي. من خلال إعطاء 3uS أكثر للميكروكونترولر (للجانب الآمن) ، مما يجعل إجمالي 30uS لعينة واحدة.

لذا فإن عينة واحدة في 30uS تعني 1 / 30uS = 33.33 KSamples / S.

لتعيين معدل أخذ العينات ، الذي يعتمد على TIMER0 من Arduino ، لأن مشغل أخذ العينات التلقائي ADC يعتمد على ذلك في حالتنا ، كما ترى أيضًا في الكود وورقة البيانات ، لقد جعلنا قيمة OCR0A = 60 (لماذا ذلك؟ ؟؟؟)

لأنه وفقًا للصيغة الواردة في ورقة البيانات.

التردد (أو هنا معدل العينة) = تردد ساعة Arduino / Prescaler * قيمة OCR0A (في حالتنا)

التردد أو معدل العينة الذي نريده = 33.33 كيلو هرتز

تردد الساعة = 16 ميجا هرتز

قيمة Prescaler = 8 (في حالتنا)

قيمة OCR0A = نريد إيجاد ؟؟

الذي يعطي ببساطة OCR0A = 60 ، أيضًا في كود Arduino الخاص بنا.

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

لذلك ، كانت هذه هي النظرية القصيرة لمفهوم ADC إلى PWM مع Arduino.

الخطوة 3: التخطيطي

تخطيطي
تخطيطي

قم بتوصيل جميع المكونات كما هو موضح في التخطيطي. إذن لديك هنا خياران: -

1. قم بتوصيل مكبر صوت (متصل بـ 5 فولت)

2. قم بتوصيل محول Flyback (متصل بـ 12V)

لقد جربت كليهما. وكلاهما يعمل بشكل جيد.

* هام * * هام ** هام ** هام ** هام * نحتاج إلى استخدام إشارة صوتية مضخمة من مضخم أو دائرة مضخم بجهد ذروة (أقصى جهد) يبلغ 5 فولت

تنصل:-

* أوصي باستخدام Flyback Transformer بحذر لأنه قد يكون خطيرًا لأنه ينتج جهدًا عاليًا. ولن أكون مسؤولاً عن أي ضرر. *

الخطوة 4: الاختبار النهائي

لذا قم بتحميل الكود المحدد إلى Arduino الخاص بك ، وقم بتوصيل الإشارة المضخمة إلى دبوس A0.

ولا تنس توصيل جميع المسامير الأرضية بأرضية مشتركة.

واستمتع فقط بالاستماع إلى الموسيقى.

موصى به: