جلسه یازدهم: ساخت صفحه کلید موزیکال
در این مثال از مبحث آموزش آردوینو می خواهیم شما را با دو دستور آشنا کنیم. دستور اول دستور Tone() است، با استفاده از این دستور می توانید فرکانس دلخواهمان را بر روی هر پایه از برد آردوینو تولید کنیم و در نهایت با اتصال بلندگو به آن پایه، یک صدا ملودی شکل در حالت های متفاوت داشته باشیم. دستور دوم نحوه ایجاد حلقه For() است. که یک دستور فوق العاده پرکاربرد در هر زبان برنامه نویسی است. با استفاده از حلقه For می توانیم یک حلقه محدود (تعیین تعداد دفعات تکرار) و یا یک حلقه ینهایت داشته باشیم. در حقیقت دستور For به ما اجازه می دهد تعداد دفعات تکرار و یا شرط تکرار حلقه را تعیین کنیم.
در این پروژه آردوینو ما سه کلید به برد آردوینو متصل کرده ایم و می خواهیم با فشرده شدن هر کلید یک صدای ملودی از بلندگو پخش شود. برای این منظور قبل شروع برنامه نویسی باید قطعات زیر را تهیه و مدار خود را بسازید.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
بلندگو - اسپیکر مدل 8 اهم 0.5 وات | 1 عدد |
تک سوئیچ 2 پایه DIP سایز 6x6x5 میلیمتر | 3 عدد |
مقاومت 100 اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
توضیحات پروژه
ابتدا مطابق دو تصویر زیر و نقشه شماتیک باید سه عدد کلید را به آردوینو متصل کنید. برای این منظور کافی است ابتدا یک پایه از هر کلید را توسط یک تکه سیم به منفی منبع تغذیه با همان پایه GND در آردوینو متصل کنید. سپس پایه دوم هر کلید را به ترتیب از کلید اول تا کلید سوم توسط یک تکه سیم به پین دیجیتال شماره 1 الی 3 آردوینو متصل کنید. با توجه کردن به نقشه شماتیک متوجه خواهید شد با فشردن هر کلید ولتاژ منفی به پایه شماره 1 الی 3 آردوینو متصل می شود و در نتیجه این پایه ها وضعیت 0 می گیرد، و زمانیکه شما هر کدام از کلیدها را رها می کنید آن پایه به واسطه مقاومت بالاکشنده داخلی آردوینو وضعیت 1 می گیرد. در نهایت برای تکمیل سخت افزار پروژه قطب مثبت یک بلندگو 8 اهمی را به واسطه یک مقاومت 100 اهمی به پایه شماره 8 آردوینو و قطب منفی بلندگو را توسط یک تکه سیم به منفی منبع تغذیه با همان پایه GND در آردوینو متصل کنید.
سورس کد برنامه در نرم افزار آردوینو
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
int buttonPin =0; int Reading=0; int frequency[]={ 0,440,494,520 }; void setup() { pinMode(1, INPUT_PULLUP); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(8, OUTPUT); } void loop() { for (buttonPin = 1; buttonPin < 4; buttonPin++) { Reading = digitalRead(buttonPin); if (Reading==0){ tone(8, frequency[buttonPin], 20); } } } |
سلام چه جوری میتونم حافظه ی اردوینو رو پاک کنم؟
سلام دوست عزیز
برای پاکسازی حافظه EEPROM برد آردوینو می توانید از برنامه زیر استفاده کنید:
سلام من از آردوینو dueاستفاده میکنم و در هنگام کامپایل با اروری مبنی بر غیر قابل قبول بودن دستور tone مواجه شدم
میشه راهنمایی کنید ممنون
سلام و خسته نباشد بابت سایت فوق العادتون ممنونم واسه زحمتاتون خیلی سایت مفید و کاربردی هست موفق باشید
سلام دوست عزیز
بسیار خوشحالیم که توانسته ایم رضایت شما کاربر گرامی را بدست آوریم، با آرزوی موفقیت برای شما و سایر کاربران الکترونیک98
سلام چگونه می شود صدا های بیشتری تولید کرد؟