آژیر پلیس

آژیر پلیس با آردوینو
نوشته شده توسط

گاهی اوقات پیش اومده که توی پروژه نیاز داشته باشیم از علائم صوتی استفاده کنیم. علائمی مثل بوق زدن، بوق خطر، آژیر و… . در این آموزش قراره با هم دیگه یک شبه آژیر پلیس درست کنیم. از همینجا و بمناسبت هفته نیروی انتظامی به تمام این عزیزان خدا قوت و خسته نباشید عرض میکنیم.

بعد از یادگرفتن و راه اندازی این آموزش، میتوینم اون رو ارتقا بدیم و با یکم تغییر توی مدار و تقویت صدا، از اون توی پروژه هایی مثل دزدگیر یا سیستم اعلام حریق، سرقت و … استفاده کنیم. که به احتمال زیاد تا چند وقت دیگه یه مطلب آموزشی در این خصوص آماده خواهم کرد. به شرط اینکه فیدبک بدید توی کامنت ها و مطالب رو برای دوستانتون و بقیه ارسال کنید o_o. پس با ما همراه باشید و این آموزش جذاب را از دست ندید.

در این آموزش از تابع کاربردی ()tone استفاده شده. این تابع یکی از توابع محیط برنامه نویسی آدروینو هست که یک موج مربعی با فرکانس مشخص شده، روی پایه ای که بهش معرفی میکنیم ایجاد میکنه.

خب تا اینجا فهمیدیم برای ایجاد یک صدای آژیر نیاز هست یک روی پایه مشخصی یک موج مربعی که دارای فرکانس مشخص و متناسب با نوع آژیر هستش ایجاد کنید.


شماتیک:

 

شماتیک


وسایل مورد نیاز:


کد های پروژه:

از سورس کد زیر میشه فهمید، برای ایجاد صوت از تابع ()tone استفاده شده است. همونطور که در ابتدای آموزش هم گفته شد، این تابع یک موج مربعی با فرکانس مشخص، بر روی پایه مورد نظر ایجاد میکنه.
برای ایجاد آژیر نیاز به دو حلقه for داریم یکی برای فرکانس از کم به زیاد و یکی هم برای فرکانس از زیاد به کم. 

طریقه استفاده از این تابع به شکل زیر است:

tone(pin, frequency)
tone(pin, frequency, duration)

در توابع بالا مقادیر داخل آرگومان تابع بصورت زیر می باشند:

  • pin: شماره پایه آردوینو که قصد ایجاد خروجی صوتی را داریم.
  • frequency: فرکانس دلخواه جهت ایجاد روی پایه مورد نظر بر حسب هرتز. [.unsigned int]
  • duration: مدت زمان پایداری موج ایجاد شده روی پایه مورد نظر بر حسب ms. (دلخواه) [.unsigned long]

در برنامه، مادامی که آژیر بصدا در خواهد آمد، برای دو پایه دیجیتال 2 و 3 دستورات شرطی در نظر گرفته شده است. اگر پایه شماره 2 یک منطقی شود صدای آژیر تبدیل به بوق می شود. و در صورتی که پایه شماره 3 یک منطقی شد، صدای آژیر تغییر پیدا کرده و مثل آژیر پلیس می شود.

int f, d;

void setup()
{
  pinMode(9, OUTPUT);
}

void loop()
{
  for (f = 635; f <= 912; f++)
  {
    tone(9, f);
    delay(d);

    if (digitalRead(2) == HIGH) f = 912;

    if (digitalRead(3) == HIGH)  d = 0;

    else
      d = 7;
  }

  for (f = 911; f >= 634; f--)
  {
    tone(9, f);
    delay(d);

    if (digitalRead(2) == HIGH) f = 634;

    if (digitalRead(3) == HIGH)  d = 0;

    else
      d = 10;
  }

  while (digitalRead(2) == HIGH)
  {
    noTone(9);
    tone(9, 250);
    delay(5);
    noTone(9);
    delay(5);
  }
}

برای دریافت سورس کد، از این لینک استفاده کنید.


تقویت صدای خروجی آژیر:

برای اینکه صدای خروجی رو تقویت کنیم و صدای بیشتری داشته باشیم نیاز به مداری بنام مدار تقویت کننده هست. همونطور که میدونیم مدارات تقویت کننده انواع مختلفی داره که از حوصله بحث خارج هست و دیگه بهش نمیپردازیم. 

  • تقویت کننده سیگنال کوچک (تقویت کننده ولتاژ)
  • تقویت کننده سیگنال بزرگ (تقویت کننده توان)

در ویدیو زیر شکل موج خروجی و ایجاد شده روی پایه 9 را میتونید ببینید:

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

در ویدیو زیر خروجی مدار بدون تقویت کننده است که میتونید مشاهده کنید:

مدار تقویت کننده:

در مدار زیر میتونیم به جای تغذیه 9 ولت از 5 ولت آردوینو هم استفاده کنیم. پایه خروجی صوتی (پایه شماره 9 با توجه به سورس کد این پروژه) را به ورودی تقویت کننده (P1) متصل نمایید. بعد از نصب و راه اندزای، شاهد افزایش بهره صوتی و صدای تولیدی خواهید بود. البته این یک مدار ابتدایی و ساده می باشد. برای نتیجه مطلوب تر و داشتن پارامتر های ایده آل تر از جمله توان مصرفی و نوع بایاس باید از مدار های تقویت کننده دیگر استفاده کرد. 

تقویت کننده با ترانزیستور 2N2222

در ویدیو زیر خروجی صوتی با استفاده از مدار بالا تقویت شده:

 

در صورتی که تمایل داشتید دامنه صوتی خروجی بیشتر بشه میتونید به جای استفاده از مدار فوق از آمپلی فایر استفاده کنید. برای خرید انواع آمپلی فایر هم میتونید به فروشگاه مایکروالکام مراجعه کنید.

اگر از این مطلب بهره برداری کردید و اون رو بصورت عملی استفاده کردید، فیلم و عکس های اون رو توی اینستاگرام با هشتگ microelecom# منتشر کنید. در صورتی که نظر یا انتقاد و سوالی بود اون رو حتما در انتهای مطلب از طریق کامنت ها با ما به اشتراگ بگذارید و نظرات شما در اسرع وقت پاسخ داده خواهد شد. تشکر از همراهی شما و تا آموزشی دیگه بدرود.

 

۲ دیدگاه برای “آژیر پلیس

  1. playagain:
    FOR note = 635 TO 911
    SOUND note, 0.222225
    NEXT
    one = 912
    two = 634
    note2 = one
    m1:
    SOUND note2, 0.222225
    note2 = note2 – 1
    IF note2 = two THEN
    GOTO playagain
    ELSE
    GOTO m1
    END IF

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

نشانی ایمیل شما منتشر نخواهد شد.