- IC PT2258
- كيف يعمل PT2258 IC
- التخطيطي
- المكونات مطلوبة
- كود اردوينو
- اختبار دائرة التحكم بحجم الصوت الرقمي
- مزيد من التحسين
مقياس الجهد هو جهاز ميكانيكي يمكن من خلاله ضبط المقاومة وفقًا للقيمة المطلوبة ، وبالتالي تغيير التيار الذي يمر عبره. توجد العديد من التطبيقات لمقياس الجهد ، ولكن يتم استخدام مقياس الجهد في الغالب كوحدة تحكم في مستوى الصوت لمكبرات الصوت.
لا يتحكم مقياس الجهد في كسب الإشارة ، لكنه يشكل مقسمًا للجهد وهذا هو سبب توهين إشارة الإدخال. لذلك في هذا المشروع ، سأوضح لك كيفية إنشاء وحدة التحكم في مستوى الصوت الرقمية باستخدام IC PT2258 وربطها بـ Arduino للتحكم في حجم دائرة مكبر الصوت. يمكنك أيضًا التحقق من الدوائر المختلفة المتعلقة بالصوت هنا بما في ذلك مقياس VU ودائرة التحكم في النغمة وما إلى ذلك.
IC PT2258
كما ذكرت سابقًا ، فإن PT2258 عبارة عن IC تم تصميمه لاستخدامه كوحدة تحكم إلكترونية بحجم 6 قنوات ، ويستخدم هذا IC تقنية CMOS المصممة خصيصًا لتطبيقات الصوت والفيديو متعددة القنوات.
يوفر هذا IC واجهة تحكم I2C مع نطاق توهين من 0 إلى -79 ديسيبل عند 1 ديسيبل / خطوة ويأتي في حزمة DIP أو SOP ذات 20 سنًا.
تتضمن بعض الميزات الأساسية ،
- 6-قنوات الإدخال والإخراج (لأنظمة الصوت المنزلي 5.1)
- عنوان I2C القابل للتحديد (لتطبيق سلسلة ديزي)
- فصل قناة عالية (لتطبيق ضوضاء منخفضة)
- نسبة S / N> 100 ديسيبل
- جهد التشغيل من 5 إلى 9 فولت
كيف يعمل PT2258 IC
هذا IC ينقل ويستقبل البيانات من متحكم عبر خطوط SCL و SDA. تشكل SDA و SCL واجهة الناقل. يجب سحب هذه الخطوط عالياً بواسطة مقاومين 4.7K لضمان التشغيل المستقر.
قبل أن نذهب إلى تشغيل الأجهزة الفعلي ، إليك الوصف الوظيفي التفصيلي لـ IC. إذا كنت لا تريد معرفة كل هذا ، فيمكنك تخطي هذا الجزء لأن جميع الأجزاء الوظيفية تتم إدارتها بواسطة مكتبة Arduino.
تأكيد صحة البيانات
- تعتبر البيانات الموجودة على خط SDA مستقرة عندما تكون إشارة SCL عالية.
- تتغير حالات HIGH و LOW لخط SDA فقط عندما يكون SCL منخفضًا.
بدء وإيقاف الشرط
يتم تنشيط شرط البدء عندما
- تم ضبط SCL على HIGH و
- يتحول SDA من HIGH إلى LOW State.
يتم تنشيط حالة التوقف عندما
- تم ضبط SCL على HIGH و
- يتحول SDA من LOW إلى HIGH State
ملحوظة! هذه المعلومات مفيدة جدًا لتصحيح الإشارات.
تنسيق البيانات
يتكون كل بايت يتم إرساله إلى خط SDA من 8 بتات ، والتي تشكل بايتًا. يجب أن يتبع كل بايت بت إقرار.
إعتراف
يضمن الإقرار التشغيل المستقر والسليم. أثناء نبض ساعة الإقرار ، يسحب الميكروكونترولر دبوس SDA HIGH في هذه اللحظة بالضبط يسحب الجهاز المحيطي (معالج الصوت) (LOW) خط SDA.
تتم الآن معالجة الجهاز المحيطي (PT2258) ويجب عليه إنشاء إقرار بعد تلقي بايت ، وإلا فسيظل خط SDA عند المستوى العالي خلال نبضة الساعة التاسعة (التاسعة). إذا حدث هذا ، فسيقوم جهاز الإرسال الرئيسي بإنشاء معلومات STOP لإحباط النقل.
هذا يوضح عدم الحاجة إلى أن يكون في مكانه الصحيح لنقل البيانات.
اختيار العنوان
يعتمد عنوان I2C الخاص بهذا IC على حالة CODE1 (رقم التعريف الشخصي 17) و CODE2 (رقم التعريف الشخصي 4).
CODE1 (رقم التعريف الشخصي 17) |
CODE2 (رقم التعريف الشخصي رقم 4) |
عنوان سداسي |
0 |
0 |
0 × 80 |
0 |
1 |
0X84 |
1 |
0 |
0 × 88 |
1 |
1 |
0X8C |
ارتفاع المنطق = 1
المنطق منخفض = 0
بروتوكول الواجهة
يتكون بروتوكول الواجهة مما يلي:
- بت البداية
- بايت عنوان رقاقة
- ACK = إقرار بت
- بايت بيانات
- بت توقف
القليل من التدبير المنزلي
بعد تشغيل IC ، يحتاج إلى الانتظار 200 مللي ثانية على الأقل قبل إرسال أول بت البيانات ، وإلا فقد يفشل نقل البيانات.
بعد التأخير ، أول شيء يجب فعله هو مسح السجل بإرسال "0XC0" vi سطر I2C ، وهذا يضمن التشغيل السليم.
تقوم الخطوة أعلاه بمسح السجل بالكامل ، والآن نحتاج إلى تعيين قيمة للسجل ، وإلا فإن السجل يخزن قيمة القمامة ونحصل على ناتج منمش.
لضمان ضبط الحجم المناسب ، من الضروري إرسال مضاعفات 10 ديسيبل متبوعة برمز 1 ديسيبل إلى المخفف بالتسلسل ، وإلا ، يمكن أن يتصرف IC بشكل غير طبيعي. يوضح الرسم البياني أدناه ذلك أكثر.
كلتا الطريقتين أعلاه ستعملان بشكل صحيح.
لضمان التشغيل السليم ، تأكد من أن سرعة نقل البيانات I2C لا تتجاوز أبدًا 100 كيلو هرتز.
هذه هي الطريقة التي يمكنك بها نقل بايت إلى IC وتخفيف إشارة الإدخال. القسم أعلاه هو لمعرفة كيفية عمل IC ، ولكن كما قلت سابقًا ، سنستخدم مكتبة Arduino للتواصل مع IC الذي يدير جميع التعليمات البرمجية الثابتة ، ونحتاج فقط إلى إجراء بعض المكالمات الوظيفية.
جميع المعلومات المذكورة أعلاه مأخوذة من ورقة البيانات ، يرجى الرجوع إليها للحصول على مزيد من المعلومات.
التخطيطي
توضح الصورة أعلاه مخطط الاختبار لدائرة التحكم في مستوى الصوت القائمة على PT2258. تم أخذها من ورقة البيانات وتعديلها حسب الحاجة.
من أجل العرض التوضيحي ، تم إنشاء الدائرة على لوح تجارب بدون لحام بمساعدة المخطط الموضح أعلاه.
ملحوظة! يتم وضع جميع المكونات بشكل وثيق قدر الإمكان لتقليل مقاومة ومقاومة السعة الطفيلية.
المكونات مطلوبة
- PT2258 IC - 1
- وحدة تحكم اردوينو نانو - 1
- اللوح العام - 1
- طرف المسمار 5 مم × 3-1
- زر الضغط - 1
- 4.7 كيلو المقاوم ، 5٪ -2
- 150 كيلو المقاوم ، 5٪ -4
- 10 كيلو المقاوم ، 5٪ -2
- 10 فائق التوهج مكثف - 6
- 0.1 فائق التوهج مكثف - 1
- أسلاك العبور - 10
كود اردوينو
للتبسيط ، سأستخدم مكتبة PT2258 من GitHub ، والتي تم إنشاؤها بواسطة sunrutcon.
هذه مكتبة مكتوبة جيدًا لهذا السبب قررت استخدامها ، ولكن نظرًا لأنها قديمة جدًا ، فهي تحتوي على القليل من الأخطاء ونحتاج إلى إصلاحها قبل أن نتمكن من استخدامها.
أولاً ، قم بتنزيل واستخراج المكتبة من مستودع GitHub.
ستحصل على الملفين أعلاه بعد الاستخراج.
# تضمين # تضمين
بعد ذلك ، افتح ملف PT2258.cpp باستخدام محرر النصوص المفضل لديك ، وأنا أستخدم Notepad ++.
يمكنك أن ترى أن الحرف "w" الخاص بمكتبة الأسلاك مكتوب بأحرف صغيرة ، وهو ما لا يتوافق مع أحدث إصدارات Arduino ، وتحتاج إلى استبداله بأحرف كبيرة "W" ، هذا كل شيء.
يمكن العثور على الكود الكامل لوحدة التحكم في مستوى الصوت PT2258 في نهاية هذا القسم. هنا يتم شرح أجزاء مهمة من البرنامج.
نبدأ الكود بتضمين جميع ملفات المكتبات المطلوبة. تُستخدم مكتبة Wire للتواصل بين Arduino و PT2258. تحتوي مكتبة PT2258 على جميع معلومات وإقرارات توقيت I2C الهامة. و ezButton يستخدم مكتبة على التفاعل مع دفع أزرار.
بدلاً من استخدام صور الكود أدناه ، انسخ جميع مثيلات التعليمات البرمجية من ملف التعليمات البرمجية واجعلها منسقة كما اعتدنا أن نفعل في مشاريع أخرى
#تضمن
بعد ذلك ، قم بعمل كائنات للزرين ومكتبة PT2258 نفسها.
PT2258 PT2258 ؛ ezButton button_1 (2) ؛ ezButton button_2 (4) ؛
بعد ذلك ، حدد مستوى الصوت. هذا هو مستوى الصوت الافتراضي الذي سيبدأ به هذا IC.
حجم كثافة العمليات = 40 ؛
بعد ذلك ، ابدأ تشغيل UART ، واضبط تردد الساعة لحافلة I2C.
Serial.begin (9600) ؛ Wire.setClock (100000) ؛
من المهم جدًا ضبط ساعة I2C ، وإلا فلن يعمل IC لأن الحد الأقصى لتردد الساعة الذي يدعمه IC هو 100 كيلو هرتز.
بعد ذلك ، نقوم ببعض التدبير المنزلي ببيان if else من أجل ضمان اتصال IC بشكل صحيح مع ناقل I2C.
إذا (! pt2258.init ()) Serial.printIn (“PT2258 تم البدء بنجاح”) ؛ Else Serial.printIn ("فشل بدء PT2258") ؛
بعد ذلك ، قمنا بتعيين تأخير الارتداد لأزرار الضغط.
Button_1.setDebounceTime (50) ، Button_2.setDebounceTime (50) ،
أخيرًا ، ابدأ تشغيل PT2258 IC بإعداده باستخدام حجم القناة الافتراضي ورقم التعريف الشخصي.
/ * استحضار PT بالحجم الافتراضي ورقم التعريف الشخصي * / Pt2258.setChannelVolume (الحجم ، 4) ؛ Pt2258.setChannelVolume (الحجم ، 5) ؛
هذا يمثل نهاية قسم Void Setup () .
في قسم الحلقة ، نحتاج إلى استدعاء وظيفة الحلقة من فئة الزر ؛ إنها قاعدة مكتبة.
Button_1.loop () ، // قواعد المكتبة Button_2.loop () ؛ // قواعد المكتبة
إذا كان المقطع أدناه هو خفض مستوى الصوت.
/ * إذا تم الضغط على الزر 1 إذا كان الشرط صحيحًا * / If (button_1.ispressed ()) {Volume ++؛ // زيادة عداد الحجم. // تضمن عبارة if أن الحجم لا يتجاوز 79 If (volume> = 79) {Volume = 79؛ } Serial.print (“حجم:”)؛ // طباعة مستوى الصوت Serial.printIn (الحجم) ؛ / * ضبط مستوى الصوت للقناة 4 الموجودة في رقم التعريف الشخصي 9 من PT2558 IC * / Pt2558.setChannelVolume (حجم ، 4) ؛ / * اضبط مستوى الصوت للقناة 5 وهو رقم PIN 10 الخاص بـ PT2558 IC * / Pt2558.setChannelVolume (الحجم ، 5) ؛ }
أدناه إذا كان القسم لزيادة حجم الصوت.
// يحدث نفس الشيء للزر 2 إذا (button_2.isPressed ()) {Volume--؛ // this if statement تضمن أن مستوى الصوت لا ينخفض عن الصفر. إذا كان (الحجم <= 0) الحجم = 0 ؛ Serial.print ("المجلد:") ؛ Serial.printIn (حجم) ؛ Pt2258.setChannelVolume (الحجم ، 4) ؛ Pt2558.setChannelVolume (الحجم ، 5) ؛ }
اختبار دائرة التحكم بحجم الصوت الرقمي
لاختبار الدائرة ، تم استخدام الجهاز التالي
- محول يحتوي على 13-0-13 صنبور
- مكبر صوت 2 4 × 20 واط كحمل.
- مصدر الصوت (الهاتف)
في مقال سابق ، لقد أوضحت لك كيفية صنع مضخم صوت بسيط 2x32 وات مع TDA2050 IC ، سأستخدم ذلك في هذا العرض التوضيحي أيضًا.
لقد قمت بخلل مقياس الجهد الميكانيكي واختصرت خيطين بكبلين صغيرين.
الآن ، بمساعدة زري ضغط ، يمكن التحكم في حجم مكبر الصوت.
مزيد من التحسين
يمكن تعديل الدائرة بشكل إضافي لتحسين أدائها. يمكن إجراء تحسينات مثل الدائرة على ثنائي الفينيل متعدد الكلور لإزالة الضوضاء الناتجة عن القسم الرقمي في IC. يمكننا أيضًا إضافة مرشح إضافي لرفض الضوضاء عالية التردد. تحقق أيضًا من دوائر مكبر الصوت الأخرى والمشاريع الأخرى ذات الصلة بالصوت.
أتمنى أن تكون قد أحببت هذه المقالة وتعلمت شيئًا جديدًا منها. إذا كان لديك أي شك ، يمكنك أن تسأل في التعليقات أدناه أو يمكنك استخدام منتدياتنا لمناقشة مفصلة.