در این پست از سایت اِمیک, یک پروژه بسیار جالب به نام پروژه آردوینو صوت سنج قرار داده شده است. همانطور که از نام این پروژه مشخص است ما مقدار یا سطح صدای محیط را اندازه گیری می کنیم و روی یک ال سی دی کاراکتری (Character LCD) نمایش می دهیم. نمایش سطح صدای محیط به صورت درصدی انجام می شود یعنی با توجه به مقدار صدای محیط عددی بین 0 تا 100 درصد روی LCD نمایش داده می شود. این پروژه با استفاده از برد آردوینو UNO انجام شده است. در زیر شماتیک این پروژه جالب را مشاهده می کنید:

قبلا نیز همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که برای مشاهده آن پست می توانید اینجا کلیک کنید.
همانطور که مشاهده می کنید, ما در این پروژه از برد آردوینو UNO استفاده کرده ایم. از یک LCD کاراکتری نیز استفاده کرده ایم که این LCD به پین های 7 تا 13 برد آردوینو متصل شده است. پتانسیومتر RV1 برای تنظیم کنتراست یا میزان روشنایی LCD کاراکتری استفاده شده است.
در این پروژه از یک میکروفن خازنی برای اندازه گیری مقدار صدای محیط استفاده شده است. میکروفن خازنی را ما ابتدا باید توسط یک مدار ساده راه اندازی کنیم و خروجی آن را مقداری تقویت کنیم و سپس برای اندازه گیری به برد آردوینو بدهیم. در شماتیک بالا قسمتی با عنوان “مدار اتصال میکروفن خازنی به میکروکنترلر” مشخص شده که در واقع همان مدار راه انداز و تقویت کننده میکروفن خازنی می باشد. قبلا من این مدار را در سایت منتشر کردم که برای مشاهده این مدار اینجا کلیک کنید.
پس از ساخت مدار معرفی شده کافی است که خروجی مثبت مدار را به پین A0 برد آردوینو, که یکی از ورودی های آنالوگ برد آردوینو می باشد متصل کنید و منفی مدار را نیز به منفی این پروژه (GND) متصل کنید.
میکروفن خازنی میزان صدای محیط را اندازه گیری می کند و خروجی میکروفن توسط مدار معرفی شده مقداری تقویت می شود و به برد آردوینو اعمال می شود. برد آردوینو نیز با اندازه گیری مقدار ولتاژ روی پین A0 خود که مقدار این ولتاژ به مقدار صدای محیط بستگی دارد, سطح صدای محیط را محاسبه می کند. در نهایت مقدار صدای محیط اندازه گیری شده, به صورت عددی بین 0 تا 100 درصد روی ال سی دی کاراکتری نمایش داده می شود. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.

تغذیه پروژه بالا را می توانید از خود برد آردوینو بگیرید, به این صورت که برد آردوینو را با استفاده از آداپتور راه اندازی کنید و از پایه های 5V و GND آردوینو برای تغذیه استفاده کنید.
برنامه آردوینو :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> //معرفی کتابخانه ال سی دی کاراکتری// //تابع زیر مشخص می کند که کدام پین های اردوینو به ال سی دی متصل شوند// LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); void setup() { analogReference(DEFAULT); //اردوینو مشخص میکند ADC دستور روبرو مقدار ولتاژ مبنا یا رفرنس را برای کار با واحد// pinMode(A0, INPUT); //اردوینو A0 ورودی کردن پین// lcd.begin(16, 2); //پیکره بندی ال سی دی// } void loop() { long int adc = 0; //تعریف متغیر برای استفاده در برنامه// int i = 0, A = 0, B = 0; //تعریف متغیر برای استفاده در برنامه// for (i = 0; i < 500; i++) { //روبرو 500 بار تکرار مي شود for حلقه// adc = adc + analogRead(A0); //می ریزد adc اردوینو که مي تواند عددي بين 0 تا 1023 باشد 500 بار نمونه گيري مي کند و حاصل جمع 500 نمونه را در متغير A0 دستور روبرو از ولتاژ انالوگ روي پايه// delay(1); } A = adc / 500; //با توجه به صداي محيط برابر عددي بين 0 تا 1023 است A می ریزد. متغیر A بر 500 ميانگين ان را بدست مي اورد و در متغير adc دستور روبرو با تقسيم مقادير// B = A / 10.23; //می ریزیم B را بر 10.23 تقسيم مي کنيم و حاصل که مقدار صداي محيط در بازه 0 تا 100 مي باشد را در متغير A از انجايي که مي خواهيم مقدار صداي محيط را بر حسب عددي بين 0 تا 100 نمايش دهيم متغير// lcd.clear(); //پاک کردن ال سي دي کاراکتري// lcd.setCursor(0, 0); //رفتن به ستون 0 و سطر 0 از ال سي دي کاراکتري// lcd.print("amount of Sound"); //روي ال سي دي کاراکتري amount of Sound نمایش عبارت// lcd.setCursor(6, 1); //رفتن به ستون 6 و سطر 1 از ال سي دي کاراکتري// lcd.print(B); //ذخیره کرده بودیم B نمايش مقدار صداي محيط (به درصد) که در متغیر// lcd.print("%"); //نوشتن علامت % روی ال سی دی// } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل برنامه این پروژه با نرم افزار آردوینو را دانلود کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…




