آموزش آردوینو UNO ( ساخت پیانو )

به آموزش آردوینو ( قسمت پانزدهم – ساخت پیانو ) خوش اومدید.

بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۴ انجام شد!

اسپیکر

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

  • هرچه فرکانس جسمی که مرتعش می شود بیشتر باشد،مولکولهای هوا با سرعت بیشتری تغییر مکان می‌دهند؛ لذا صدایی که به گوش می رسد صدای زیرتری خواهد بود.
  • اگر تعداد نوسانات در واحد ثانیه کم باشد، صدا بصورت بم به گوش خواهد رسید.
  • دسیبل که بطور مخفف آن را با dB نشان می‌دهند، واحد اندازه‌گیری شدت صوت است.

پیاده سازی عملی پروژه

از پایه های ۴ تا ۱۰ برد آردوینو برای اتصال به هفت کلید فشاری استفاده میکنیم.

پایه  شماره ۱۱ برد آردوینو برای اتصال به اسپیکر در نظر گرفته شده است.

پایه زمین مشترک کلید های فشاری و اسپیکر رو بهم متصل کنید و در نهایت به پایه Gnd  برد آردوینو اتصال بدهید.

شبیه سازی پروژه در نرم افزار پروتئوس

برای این پروژه مدار خود را مانند شکل زیر ببندید.

کد های دستوری

ابتدای برنامه هفت نت رو با فرکانس های مختلف برای پخش کردن روی اسپیکر تعریف میکنیم.

#define T_C 262
#define T_D 294
#define T_E 330
#define T_F 349
#define T_G 392
#define T_A 440
#define T_B 493

در ادامه پایه شماره ۴ تا ۱۰ از برد آردوینو رو برای اتصال به هفت کلید فشاری پیانو خودمون تعریف میکنیم.

پایه شماره ۱۱ برای اتصال به اسپیکر نظر میگیریم.

const int C = 10;
const int D = 9;
const int E = 8;
const int F = 7;
const int G = 6;
const int A = 5;
const int B = 4;

const int Buzz = 11;

در تابع setup پایه های ۴ تا ۱۰ برد آردوینو رو بعنوان Input تعریف میکنیم.

و پایه های ۱۱ که به اسپیکر متصل میشه را بصورت خروجی تنظیم میکنیم.

void setup() 
{
  pinMode(C, INPUT);
  digitalWrite(C,HIGH);
  
  pinMode(D, INPUT);
  digitalWrite(D,HIGH);
  
  pinMode(E, INPUT);
  digitalWrite(E,HIGH);
  
  pinMode(F, INPUT);
  digitalWrite(F,HIGH);
  
  pinMode(G, INPUT);
  digitalWrite(G,HIGH);
  
  pinMode(A, INPUT);
  digitalWrite(A,HIGH);
  
  pinMode(B, INPUT);
  digitalWrite(B,HIGH);
}

در تابع loop توی بلوک اصلی برنامه به محض فشرده شدن هر کلید نت بخصوصی رو با استفاده از تابع tone پخش میکنیم.آموزش تابع tone در قسمت هشتم آموزش داده شده است.

void loop()
{
  while(digitalRead(C) == LOW)
  {
    tone(Buzz,T_C);
  }

  while(digitalRead(D) == LOW)
  {
    tone(Buzz,T_D);
  }

  while(digitalRead(E) == LOW)
  {
    tone(Buzz,T_E);
  }

  while(digitalRead(F) == LOW)
  {
    tone(Buzz,T_F);
  }

  while(digitalRead(G) == LOW)
  {
    tone(Buzz,T_G);
  }

  while(digitalRead(A) == LOW)
  {
    tone(Buzz,T_A);
  }

  while(digitalRead(B) == LOW)
  {
    tone(Buzz,T_B);
  }

  noTone(Buzz);
}

کد کامل پروژه

#define T_C 262
#define T_D 294
#define T_E 330
#define T_F 349
#define T_G 392
#define T_A 440
#define T_B 493

const int C = 10;
const int D = 9;
const int E = 8;
const int F = 7;
const int G = 6;
const int A = 5;
const int B = 4;

const int Buzz = 11;

void setup() 
{
  pinMode(C, INPUT);
  digitalWrite(C,HIGH);
  
  pinMode(D, INPUT);
  digitalWrite(D,HIGH);
  
  pinMode(E, INPUT);
  digitalWrite(E,HIGH);
  
  pinMode(F, INPUT);
  digitalWrite(F,HIGH);
  
  pinMode(G, INPUT);
  digitalWrite(G,HIGH);
  
  pinMode(A, INPUT);
  digitalWrite(A,HIGH);
  
  pinMode(B, INPUT);
  digitalWrite(B,HIGH);
}

void loop()
{
  while(digitalRead(C) == LOW)
  {
    tone(Buzz,T_C);
  }

  while(digitalRead(D) == LOW)
  {
    tone(Buzz,T_D);
  }

  while(digitalRead(E) == LOW)
  {
    tone(Buzz,T_E);
  }

  while(digitalRead(F) == LOW)
  {
    tone(Buzz,T_F);
  }

  while(digitalRead(G) == LOW)
  {
    tone(Buzz,T_G);
  }

  while(digitalRead(A) == LOW)
  {
    tone(Buzz,T_A);
  }

  while(digitalRead(B) == LOW)
  {
    tone(Buzz,T_B);
  }

  noTone(Buzz);
}

پایان آموزش آردوینو ( قسمت پانزدهم – ساخت پیانو )

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...