samsung galaxy note edge photo story blade 1

راه اندازی تراشه MSGEQ7 که یک آی‌سی اکولایزر گرافیکی 7 باند است

تراشه MSGEQ7 یک آی‌سی اکولایزر گرافیکی 7 باند است که برای آنالیز طیف فرکانسی سیگنال‌های صوتی به کار می‌رود. این تراشه ورودی صوتی را به هفت باند فرکانسی مجزا تقسیم می‌کند (63Hz، 160Hz، 400Hz، 1kHz، 2.5kHz، 6.25kHz و 16kHz) و برای هر باند، یک ولتاژ DC متناسب با دامنه آن فرکانس تولید می‌کند. این ولتاژهای DC را می‌توان با میکروکنترلرها مانند آردوینو خوانده و برای نمایش بصری صدا (مانند LEDهای رقص نور) یا کنترل سایر سیستم‌ها استفاده کرد.

ویژگی‌های کلیدی MSGEQ7:

  • هفت باند فرکانسی: تقسیم طیف صوتی به هفت باند مشخص.
  • خروجی DC: برای هر باند فرکانسی، یک ولتاژ DC متناسب با دامنه آن فرکانس تولید می‌کند.
  • مولتی‌پلکسر داخلی: خروجی هفت باند فرکانسی به صورت سری از یک پین واحد (OUT) خارج می‌شود که با استفاده از پین‌های STROBE و RESET کنترل می‌شود.
  • نیاز به حداقل قطعات خارجی: فقط یک مقاومت و یک خازن برای اسیلاتور داخلی نیاز دارد.
  • مصرف انرژی پایین: مناسب برای دستگاه‌های صوتی قابل حمل.
  • ولتاژ کاری: 2.7 تا 5.5 ولت (5 ولت بهترین عملکرد را دارد).

پین‌های اصلی MSGEQ7:

  • VDD: تغذیه مثبت (معمولاً 5 ولت).
  • VSS: تغذیه منفی (معمولاً 0 ولت / زمین).
  • OUT: خروجی مولتی‌پلکس شده DC (ولتاژ آنالوگ متناسب با دامنه باند فرکانسی انتخاب شده).
  • STROBE: پین انتخاب کانال. با تغییر وضعیت این پین، مولتی‌پلکسر داخلی به باند فرکانسی بعدی سوئیچ می‌کند.
  • IN: ورودی صوتی.
  • GND: زمین داخلی (معمولاً 2.5 ولت به عنوان ولتاژ مرجع).
  • RESET: پین ریست مولتی‌پلکسر. با فعال کردن این پین، شمارشگر باندها ریست می‌شود و تراشه آماده خواندن باند 63Hz می‌شود.
  • CKIN: پین اسیلاتور داخلی. برای تنظیم فرکانس اسیلاتور داخلی تراشه، یک مقاومت و یک خازن به این پین متصل می‌شوند.

نحوه راه‌اندازی و خواندن داده‌ها (با استفاده از آردوینو به عنوان مثال):

برای راه‌اندازی MSGEQ7 و خواندن داده‌ها، به یک میکروکنترلر (مانند آردوینو) نیاز دارید تا پین‌های STROBE و RESET را کنترل کرده و پین OUT را بخواند.

مدار لازم:

  1. اتصالات تغذیه:
    • VDD به 5V آردوینو.
    • VSS به GND آردوینو.
  2. ورودی صوتی:
    • پین IN تراشه را به ورودی صوتی خود (مانند خروجی هدفون یک پخش‌کننده MP3 یا میکروفون با مدار بایاس مناسب) متصل کنید. معمولاً ورودی صوتی نیاز به یک خازن کوپلینگ برای حذف مولفه DC دارد و همچنین باید سطح ولتاژ آن با ولتاژ کاری MSGEQ7 (مثلاً 0 تا 5 ولت) متناسب شود.
    • پین GND تراشه (که یک ولتاژ مرجع داخلی 2.5V تولید می‌کند) می‌تواند به زمین سیگنال صوتی متصل شود.
  3. مدار اسیلاتور:
    • یک مقاومت (مثلاً 200 کیلو اهم) و یک خازن (مثلاً 33 پیکوفاراد) را به پین CKIN متصل کنید. این مقادیر می‌توانند بر اساس دیتاشیت تراشه و نیاز شما برای تنظیم فرکانس اسیلاتور داخلی و در نتیجه سرعت نمونه‌برداری تغییر کنند.
  4. اتصالات کنترل به آردوینو:
    • پین STROBE تراشه را به یک پین دیجیتال خروجی آردوینو (مثلاً پین 4).
    • پین RESET تراشه را به یک پین دیجیتال خروجی آردوینو (مثلاً پین 5).
    • پین OUT تراشه (خروجی آنالوگ) را به یک پین ورودی آنالوگ آردوینو (مثلاً A0).

روال خواندن داده‌ها (کد آردوینو):

برای خواندن مقادیر هفت باند فرکانسی، باید یک توالی زمانی (Timing Diagram) خاص را رعایت کنید:

  1. ریست کردن تراشه:
    • ابتدا پین RESET را در حالت LOW قرار دهید (برای مدت زمان کوتاهی، مثلاً 1 میلی‌ثانیه).
    • سپس پین RESET را در حالت HIGH قرار دهید. (این کار تراشه را ریست می‌کند و آن را برای خواندن باند 63Hz آماده می‌کند.)
  2. خواندن باندها:
    • برای خواندن هر باند فرکانسی:
      • پین STROBE را در حالت LOW قرار دهید.
      • پس از یک تاخیر کوتاه (حدود 35 میکروثانیه مطابق دیتاشیت)، مقدار پین OUT را با analogRead() بخوانید.
      • پین STROBE را در حالت HIGH قرار دهید.
      • پس از یک تاخیر کوتاه دیگر (حدود 35 میکروثانیه)، این کار باعث می‌شود تراشه به باند فرکانسی بعدی سوئیچ کند.
    • این مراحل را 7 بار تکرار کنید تا مقادیر تمام 7 باند فرکانسی را بخوانید.

مثال کد آردوینو (مفهومی):

#define STROBE_PIN 4  // پین STROBE تراشه به پین 4 آردوینو
#define RESET_PIN 5   // پین RESET تراشه به پین 5 آردوینو
#define OUT_PIN A0    // پین OUT تراشه به پین آنالوگ A0 آردوینو

int frequencyBands[7]; // آرایه‌ای برای ذخیره مقادیر 7 باند فرکانسی

void setup() {
  Serial.begin(9600); // شروع ارتباط سریال برای نمایش داده‌ها
  pinMode(STROBE_PIN, OUTPUT);
  pinMode(RESET_PIN, OUTPUT);
  pinMode(OUT_PIN, INPUT);

  // تنظیم حالت اولیه پین ها
  digitalWrite(RESET_PIN, LOW);
  digitalWrite(STROBE_PIN, HIGH); // حالت پیش فرض STROBE باید HIGH باشد
  delay(1); // تاخیر کوچک
}

void loop() {
  // 1. ریست کردن MSGEQ7
  digitalWrite(RESET_PIN, HIGH);
  digitalWrite(STROBE_PIN, HIGH);
  delayMicroseconds(100); // طبق دیتاشیت، زمان لازم برای ریست

  digitalWrite(RESET_PIN, LOW); // پایان عملیات ریست
  delayMicroseconds(100); // تاخیر لازم

  // 2. خواندن 7 باند فرکانسی
  for (int i = 0; i < 7; i++) {
    digitalWrite(STROBE_PIN, LOW); // انتخاب باند بعدی
    delayMicroseconds(35); // تاخیر لازم برای تثبیت خروجی (طبق دیتاشیت)
    frequencyBands[i] = analogRead(OUT_PIN); // خواندن مقدار آنالوگ
    digitalWrite(STROBE_PIN, HIGH); // آماده شدن برای باند بعدی
    delayMicroseconds(35); // تاخیر لازم برای تغییر باند
  }

  // نمایش مقادیر خوانده شده
  Serial.print("Bands: ");
  for (int i = 0; i < 7; i++) {
    Serial.print(frequencyBands[i]);
    Serial.print("\t");
  }
  Serial.println();

  delay(50); // تاخیر برای مشاهده بهتر مقادیر
}

نکات مهم در راه‌اندازی:

  • دیتاشیت: همیشه به دیتاشیت رسمی MSGEQ7 مراجعه کنید. زمان‌بندی‌های (Timing) دقیق پین‌های STROBE و RESET بسیار مهم هستند. عدم رعایت این زمان‌بندی‌ها می‌تواند منجر به خوانش نادرست یا عدم عملکرد تراشه شود.
  • ورودی صوتی: سیگنال ورودی صوتی باید در محدوده ولتاژ مناسب (مثلاً 0 تا 5 ولت برای آردوینو 5 ولتی) باشد. اگر از میکروفون استفاده می‌کنید، باید دارای مدار پیش‌تقویت‌کننده و بایاس مناسب باشد تا سیگنال قوی و مناسبی را به ورودی MSGEQ7 ارائه دهد.
  • نویز: ممکن است در خروجی MSGEQ7 نویز مشاهده کنید، حتی زمانی که سیگنال صوتی وجود ندارد. این نویز را می‌توان با فیلترهای نرم‌افزاری (مثل میانگین‌گیری از چندین نمونه) یا تنظیم “آستانه نویز” در کد حذف کرد.
  • پروژه‌ها: این تراشه برای پروژه‌های زیادی از جمله:
    • نمایشگرهای صوتی (VU متر، رقص نور LED)
    • اکولایزرهای گرافیکی
    • سیستم‌های تشخیص موسیقی (مثلاً برای تشخیص ضربان یا بیس)
    • اسپکتروم آنالایزر ساده

      بسیار مناسب است.

ماژول‌های آماده MSGEQ7:

برخی فروشگاه‌ها ماژول‌های آماده MSGEQ7 را ارائه می‌دهند که شامل تراشه و حداقل قطعات خارجی مورد نیاز روی یک برد کوچک هستند. استفاده از این ماژول‌ها می‌تواند فرآیند راه‌اندازی را بسیار ساده‌تر کند، زیرا نیازی به سیم‌کشی پیچیده مدار اسیلاتور و سایر قطعات جانبی نخواهید داشت. برخی از این ماژول‌ها حتی دارای ورودی و خروجی صوتی و پین‌های مناسب برای اتصال مستقیم به آردوینو هستند.

همچنین بررسی کنید

برای سیستم ویندوز کدام رابط گرافیکی برای زبان c مناسبتر است؟

برای زبان C در ویندوز، کتابخانه‌های GTK، FLTK، IUP و LCUI از گزینه‌های محبوب و …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *