فهرست مطالب:
- مرحله 1: اجزای مورد استفاده
- مرحله 2: پاکت دنبال کننده
- مرحله 3: PWM برای Analog Meter
- مرحله 4: کالیبراسیون میکروفون
- مرحله 5: برنامه Android
- مرحله 6: خلاصه
تصویری: بلوتوث VU متر آنالوگ فعال: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
این پروژه من برای یکی از کلاسهای دانشگاهی من به نام SMP بود. همانطور که ما از برد توسعه STM32F103RB استفاده می کردیم ، من پروژه خود را بر اساس این کار شروع کردم ، از یک VU متر ساده شروع کردم. سپس برخی ویژگی های اضافی مانند پشتیبانی بلوتوث را برای پخش مقادیر از ADC به یک برنامه Android اضافه کردم تا یک نمودار dB ساده ایجاد شود.
مرحله 1: اجزای مورد استفاده
- برد توسعه STM32F103RB
- ماژول بلوتوث HC-05 zs040
- پانل VU متر آنالوگ (پیوند)
- میکروفون الکتریت
- LM324N quad op-amp
- 2 ترانزیستور TIP120
- 3 دیود 1N4148
- خازن ها و مقاومت های مختلف
اگرچه می توانید این مدار را از ریل 5 ولت برد جدا کنید ، اما من همچنین از منبع تغذیه خارجی 5 ولت استفاده کردم.
مرحله 2: پاکت دنبال کننده
قطعه اصلی این طرح دنبال کننده پاکت نامه است که سیگنال را از میکروفون الکترت گرفته و ولتاژ متناسب با دامنه سیگنال میکروفون را خروجی می دهد.
سیگنال خام میکروفون ابتدا از طریق تقویت کننده با افزایش 150 عبور می کند.
سپس سیگنال از طریق دنبال کننده پاکت واقعی منتقل می شود که باید فقط قسمت های سیگنال مثبت را خروجی دهد.
قسمت آخر کم کردن ولتاژ جابجایی 1.65 ولت از خروجی دنبال کننده پاکت است تا سیگنال 0 ولت را بدون صدا ، 1.65 ولت را برای صدای متوسط و 3.3 ولت را برای صدای بلند ارائه دهد که باید با صدای داخلی سازگار باشد. ADC هیئت مدیره.
این دنبال کننده پاکت نامه از این پاسخ عالی StackExchange پیاده سازی شده است.
مرحله 3: PWM برای Analog Meter
برای فعال کردن سوزن سنج ، من تایمر TIM4 برد میکروکنترلر را با فرکانس حدود 500 هرتز پیکربندی کرده ام.
با امتحان پی در پی چرخه های مختلف وظیفه ، با برخی از مقادیر که به اندازه کافی برای رسیدن سوزن از 0 به 100 بود ، رضایت دادم.
من فرآیند نمایش مقدار دقیق را در مرحله بعد با استفاده از برخی از ریاضیات توضیح خواهم داد.
مرحله 4: کالیبراسیون میکروفون
پس از انجام پاکت نامه ، چند کد ساده برای استفاده از ADC نوشتم و تأیید کردم که ارزش خواندن در واقع متناسب با میزان صدای داخل اتاق تغییر می کند.
به منظور "ترجمه" این مقدار به یک خوانش واقعی dB ، من از یک مولد صدای آنلاین با فرکانس 550 هرتز و اندروید خود برای ارائه خواندن مرجع استفاده کرده ام.
من این مقادیر را ترسیم کرده ام و از ابزار MatLAB's Curve Fit استفاده کرده ام تا عملکردی را بدست آورم که خوانش های ADC را با تقریب واقعی سطوح dB (یا حداقل به اندازه کافی نزدیک به خوانش های تلفن من) ترسیم کند.
می بینیم که این مقیاس لگاریتمی میکروفون را دنبال می کند.
من همچنین همین کار را برای ترسیم موقعیت سوزن به مقادیر PWM انجام دادم. من این مقادیر را با افزایش مقدار PWM تا 10 پیاپی جمع آوری کردم تا زمانی که نیاز به خواندن در مقیاس آن رسید.
با ترکیب آن دو تابع ، راهی آسان برای نمایش خواندن از ADC به مقدار واقعی در نشانگر سنج یافتم.
مرحله 5: برنامه Android
برنامه از این کتابخانه جالب برای برقراری ارتباط از طریق سریال بلوتوث برای تبادل اطلاعات بایت استفاده می کند.
نکته مهم این سیستم این است که حداکثر طول کلمه ارسال شده از طریق بلوتوث 8 بیت است و مقدار ADC به عنوان 12 بیت نشان داده می شود. برای غلبه بر این مسئله ، یک مقدار ADC را به 2 مقدار جداگانه 6 بیتی (MSB و LSB) تقسیم کردم و 2 بیت باقی مانده برای شناسایی نوع پیام (MSB ، LSB ، CHK) استفاده شد.
بنابراین ، برای یک مقدار ADC که می خواهیم پخش شود ، مقدار واقعی را به 2 پیام تقسیم می کنیم. برای بررسی یکپارچگی آن پیام ها ، پیام سوم را با XOR از 2 پیام اول ارسال کردم.
پس از بررسی یکپارچگی مقدار ، می توانیم همان تابع را برای بدست آوردن سطح dB و ترسیم آن بر روی نمودار زنده خود اعمال کنیم.
مرحله 6: خلاصه
در حالی که من قسمت میکرو کنترلر این پروژه بسیار خوب کار می کنم و صدای داخل اتاق را نمایش می دهم ، هنگام ارسال اطلاعات از طریق بلوتوث به دلیل از دست دادن بسته ها ، با برخی از مشکلات روبرو شدم.
کد منبع این پروژه را می توانید در اینجا پیدا کنید:
- برنامه همراه Android - repo
- کد میکروکنترلر - repo
اگر به نظر شما این روش به هر نحوی مفید است ، مشارکت کنید.
توصیه شده:
نحوه خواندن چندین ارزش آنالوگ با استفاده از یک پین آنالوگ: 6 مرحله (همراه با تصاویر)
نحوه خواندن چندین ارزش آنالوگ با استفاده از یک پین آنالوگ: در این آموزش ، من به شما نحوه خواندن چندین مقدار آنالوگ با استفاده از تنها یک پین ورودی آنالوگ را نشان خواهم داد
ولت متر آنالوگ یکپارچهسازی با سیستمعامل: 11 مرحله
ولتمتر آنالوگ یکپارچهسازی با سیستمعامل: مقدمه: قبل از اینکه LED ها و صفحه های رایانه روشهای متداولی برای نمایش اطلاعات باشند ، مهندسان و دانشمندان به مترهای پانل آنالوگ وابسته بودند. در حقیقت ، آنها هنوز هم در تعدادی از اتاق های کنترل استفاده می شوند ، زیرا می توانند ساخته شوند
متر CO2 آنالوگ غول پیکر: 6 مرحله (همراه با تصاویر)
دی اکسید کربن آنالوگ غول پیکر: جو کنونی بالای کوهی در هاوایی حاوی حدود 400 پی پی ام دی اکسید کربن است. این عدد برای همه کسانی که در سطح سیارات زندگی می کنند بسیار مهم است. اکنون یا منکران این نگرانی احاطه شده ایم یا کسانی که نگرانی خود را به هم می زنند
مدارهای GPIO Raspberry Pi: استفاده از سنسور آنالوگ LDR بدون ADC (مبدل آنالوگ به دیجیتال): 4 مرحله
مدارهای GPIO Raspberry Pi: استفاده از سنسور آنالوگ LDR بدون ADC (مبدل آنالوگ به دیجیتال): در دستورالعمل های قبلی ما به شما نشان داده ایم که چگونه می توانید پین های GPIO رزبری پای خود را به LED ها و سوئیچ ها وصل کنید و چگونه پین های GPIO می توانند بالا باشند یا کم. اما اگر می خواهید رزبری پای خود را با سنسور آنالوگ استفاده کنید ، چطور؟ اگر می خواهیم از یک
نحوه آزمایش ترانزیستورهای دوقطبی در صورت داشتن مولتی متر آنالوگ: 4 مرحله
نحوه آزمایش ترانزیستورهای دوقطبی در صورت داشتن مولتی متر آنالوگ: ما می دانیم که ترانزیستور چگونه کار می کند ، اما برخی از ما واقعاً نمی دانیم چگونه خود قطعه را آزمایش کنیم. امروزه در اکثر مولتی مترهای دیجیتال سوکت هایی برای آزمایش آنها ارائه شده است ، اما اگر آنالوگهای قدیمی آنالوگ/Needletype را داشته باشید چه می کنید؟ این یک سیم کارت