آردوینو سرگرمی پروژه های آردوینو

روشن کردن چراغ با دست زدن با ماژول میکروفن خازنی Clap Lamp Arduino

Clap-Lamp-Arduino--Digispark
نوشته شده توسط آرش کدخدایی

فرمان دادن به اشیا جز با علم الکترونیک امکان پذیر نمی‌باشد. امروزه با وجود امبدد سیستم‌ها از جمله برد آردوینو Arduino این موضوع به سادگی قابل اجراست. کافیست کدهای کامپیوتری را به برد امبدد اضافه کنیم و تمام. در این آموزش قصد داریم یک چراغ را با استفاده از دست زدن روشن کنیم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


روشن کردن چراغ با دست زدن


برای این کار به ماژول میکروفن خازنی نیاز داریم. ماژول میکروفن خازنی با مولتی ترن Microphone دارای خروجی آنالوگ و دیجیتال می‌باشد. پایه AO خروجی آنالوگ و همزمان صدای میکروفن می‌باشد. خروجی DO برای زمانی است که شدت صدا به یک آستانه خاصی برسد. که این هم با استفاده از مولتی ترن روی ماژول قابل تنظیم است. مولتی ترن ماژول را طوری تنظیم میکنیم که با دست زدن خروجی DO فعال شود.

 


اتصالات مدار Clap Lamp


ماژول میکروفن خازنی دارای ۴ پایه می‌باشد. در این آموزش از ۳ پایه آن استفاده می‌کنیم. پایه‌های G و + برای تغذیه هستند و به زمین و ۳٫۳ ولت آردوینو پرو مینی Pro mini متصل می‌شوند. مدار پین DO ماژول میکروفن را به پین ۸ و سر مثبت ال ای دی را به ۹ متصل کرده ایم.

آموزش روشن کردن چراغ با دست زدن توسط ماژول میکروفن خازنی و آردوینو - دیجی اسپارک

 


وسایل مورد نیاز آموزش ماژول میکروفن


 


کد آردوینو Clap Lamp


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

//تعریف پین ها
#define sensorPin 8
#define ledPin 9

int led=0;
unsigned long currentMillis,sec;

void setup () {
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
 
void loop () {
  //شرط فعال شدن ماژول برای دفعه اول
  if (digitalRead(sensorPin) == 1){
    delay(10);
    Serial.println("first time!");
    currentMillis = millis();
    sec = millis();
    //منتظر برای دو ثانیه
    while (sec - currentMillis < 2000){
      //شرط فعال شدن ماژول برای دفعه دوم
      if (digitalRead(sensorPin) == 1){
        Serial.println("second time!");
        digitalWrite(ledPin, led=!led);
        delay(10);
        break;
      }
      sec = millis();
    }
  }
}

حالا با زدن دست با فاصله زمانی کمتر از ۲ ثانیه چراغ روشن یا خاموش میشود! همچنین میتوانید به جای ال ای دی از رله استفاده کنید و هر وسیله ای را کنترل کنید.

 


تحلیل کد آردوینو


این کد یک برنامه Arduino است که از یک سنسور مخصوص استفاده می‌کند (که به عنوان sensorPin تعریف شده است) و وقتی که این سنسور فعال شود، یک LED (که به عنوان ledPin تعریف شده است) را روشن و خاموش می‌کند.ابتدا دو پین (sensorPin و ledPin) به تعداد معینی با استفاده از #define تعریف می‌شوند. این اعداد به ترتیب ۸ و ۹ به عنوان مقدار پیش‌فرض برای sensorPin و ledPin انتخاب شده‌اند.متغیرهای led، currentMillis و sec تعریف شده‌اند. led یک متغیر بولین است که برای تغییر وضعیت LED به کار می‌رود. currentMillis و sec از نوع unsigned long برای ذخیره زمان‌ها به میلی‌ثانیه هستند.در تابع setup، پین ledPin به عنوان یک خروجی (OUTPUT) تعیین می‌شود و اتصال به پورت Serial با سرعت ۹۶۰۰ بوده و از آن برای ارسال پیام‌ها به مانیتور سریال استفاده می‌شود.تابع loop بی‌پایان است و عملکرد اصلی برنامه را اجرا می‌کند.در ابتدا، یک شرط برای فعال شدن سنسور (با تغییر وضعیت sensorPin به HIGH) بررسی می‌شود.اگر سنسور برای اولین بار فعال شود (وضعیت sensorPin برابر ۱ باشد)، پیام “first time!” روی مانیتور سریال چاپ می‌شود و زمان فعلی به متغیر currentMillis و sec اختصاص داده می‌شود.سپس یک حلقه while شروع می‌شود که منتظر بماند تا ۲ ثانیه (۲۰۰۰ میلی‌ثانیه) بگذرد.در داخل این حلقه، دوباره شرطی برای فعال شدن سنسور (تغییر وضعیت sensorPin به HIGH) بررسی می‌شود.اگر سنسور دوباره فعال شود، پیام “second time!” روی مانیتور سریال چاپ می‌شود و وضعیت LED به عکس آنچه که بوده (تغییر وضعیت) تغییر می‌کند (led=!led) و LED روشن یا خاموش می‌شود. سپس با استفاده از دستور delay(10) تاخیر داده می‌شود و حلقه while به پایان می‌رسد.

 

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

تبادل نظر و رفع عیب با ثبت دیدگاه

۶۴ دیدگاه