كيفية استخدام البيزو ( الطنان )



ستتعلم في هذا الدرس كيفية استخدام البيزو الذي من مسمياته ايضا ( الصفاره , الطنان ) حيث ستلاحظ تواجد هذه القطعه في الكثير من الاجهزه من اهمها جهاز الكمبيوتر , جهاز التنبيه و اجهزة الانذار والكثير حيث يكاد لا يخلو جهاز من هذه القطعه المهمه , بالاضافه الى انك ستقوم بتعلم استخدام بعض الادوات البرمجيه التي تخص "البيزو" مثل ()Tone و ()noTone .

 يبدو انك مفعم بالحماس ! إذن لما الانتظار هيا لنبدأ .


القطع المطلوبه 



اسم القطعه بالعربيه
اسم القطعه بالانجليزيه
المصدر
اردوينو اونو
Arduino Uno
لوح تجارب
Bread Board
طنان
Buzzer/piezo Speaker
مقاومه 100 اوم
100 Ohm Resistor


التوصيل

توصيل التجربه ليس بالامر المعقد انظر الى الصوره بالاسفل .

كما لاحظت نقوم بتوصيل طرف "البيزو" السالب الى مخرج GND من الاردوينو من ثم نقوم بتوصيل الطرف الاخر الى المقاومه من ثم الى مخرج الديجيتال رقم 9 


PWMبأمكانك استخدام اي مخرج ديجيتال وتغيير رقم المخرج في الكود على شرط ان يكون المخرج من نوع
PWMوبأمكانك التأكد من خلال الاشاره التي بجانب رقم المخرج (~) التي تشير الى انه


الكود البرمجي

الكود البرمجي سهل للغايه فهو يعمل كالاتي

  • بأستخدام هذه الجمله البرمجيه "const int buzzer = 9" قمنا بتعريف متغير ثابت وهو رقم المخرج الذي سنقوم بالتحكم بالحساس من خلاله وهو مخرج رقم 9
  • بالنزول للأسفل قليلا داخل "void setup" قمنا بأستخدام الامر التالي "pinMode(buzzer, OUTPUT)" والذي بدوره يقوم بتعريف المخرج الذي قمنا بأختياره في الجمله السابقه كمخرج وليس كمدخل , اي انه في حال قمت بتوصيل حساس حراره عليه فإنه سيقرأ الحراره وبالتالي اريد تعريفه كمدخل "INPUT" لاكن في هذه الحاله اريد ان اقوم بأخراج اشاره من خلاله للتحكم بالطنان لذلك قمت بتعريفه كمخرج "OUTPUT"
  • الان سننتقل الى داخل "void Loop" ونجد ان جملو الامر الاولى التي تواجهنا هناك هي "tone(buzzer, 1000)" والتي تأمر بورد الاردوينو بأخراج تردد بمقدار 1 كيلو هيرتز على مخرج Buzzer والذي قمنا بتعريفه في البدايه على انه رقم 9
  • جملة التأخير "delay(1000)" عادة ما نرى هذه الجمله في كثير من الاكواد وهي تقوم بإيقاف عمل الكود البرمجي لحين انتهاء المده التي قمت بتحديدها بين الاقواس حيث في حالتنا هذه رقم 1000 يعني 1000 ميلي ثانيه اي ما يساوي ثانيه واحده
  • هذه الجمله البرمجيه "noTone(buzzer)" تعني انه قم بإيقاف النغمه على المخرج الذي بين القوسين

    في ما يلي الكود البرمجي كاملا :




   const int buzzer = 9; //buzzer to arduino pin 9


void setup(){
 
  pinMode(buzzer, OUTPUT); // Set buzzer - pin 9 as an output

}

void loop(){
 
  tone(buzzer, 1000); // Send 1KHz sound signal...
  delay(1000);        // ...for 1 sec
  noTone(buzzer);     // Stop sound...
  delay(1000);        // ...for 1sec
  
}
    

no_sidebar