Elektronika Untuk Masa Depan
Ajifahreza

Buzzer Suara Nada Unik Arduino

Assalamualaikum Warahmatullahi Wabarakatuh, pada tutorial kali ini saya mengenalkan sebuah program yang sudah ada tinggal kita jalankan di arduino.cc. Buzzer Suara Nada Unik di Arduino. Kita banyak kenal buzzer hanya mempunyai satu buah nada yaitu "tiiiit", tapi sebenarnya tidak.
Buzzer ini bisa kita koneksikan menggunakan pin PWM pada pin Arduino, dari pin PWM inilah kita bisa atur nilai nya yang bisa mengeluarkan suara unik atau suara bernada misalkan "do re mi fa sol la si do". Tentunya untuk membuat suara do re mi fa sol la si do harus mengatur frequency nya. Untuk Rangkaian Buzzer 
Rangkaian Buzzer Dengan Arduino Uno

Komponen yang digunakan :
  • Arduino
  • Buzzer
Pin Yang digunakan :
  • Arduino (Pin 6) = (+) Buzzer
  • Arduino (GND) = (-) Buzzer
Schematic Diagram :

Pin yang digunakan di arduino adalah pin 6. Dimana kita tahu Pin PWM untuk arduino uno adalah Pin 3, 5, 6, 9, 10 dan 11 untuk belajar pin PWM di "https://www.arduino.cc/en/Tutorial/PWM".
Ada beberapa program untuk rangkaian ini, dari program sederhana Penggunaan Pin PWM Untuk Buzzer dan program Nada Buzzer.

==============================================================

Program Pin PWM Buzzer :

const int buzzer = 6;

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

void loop(){
  tone(buzzer, 1000);
  delay(1000);     
  tone(buzzer, 500);
  delay(1000);     
  noTone(buzzer);   
  delay(1000);     
}
Note : Yang berwarna biru bisa kita rubah nilainya

Penjelasan Program :

const int buzzer = 6;
Menyatakan nama konstanta buzzer yang menggunakan Pin 6 Arduino. Const menyatakan konstanta dan int menyatakan tipe data untuk konstanta tersebut adalah bilangan bulat.

pinMode(buzzer, OUTPUT);
Digunakan untuk membuat pin buzzer (Pin 6) dijadikan sebagai output (keluaran)

  tone(buzzer, 1000);
  delay(1000);     
  tone(buzzer, 500);
  delay(1000);     
  noTone(buzzer);   
  delay(1000);
Tone (buzzer, 1000);  adalah program untuk mengirimkan sound signal di pin buzzer tadi dengan nilai 1 KHz dan nilai 1000 bisa kita rubah sesuai kita dan delay(1000) adalah waktu untuk program selama 1 Second. Coba ubah nilainya dan lihat perubahan yang terjadi. Kunci pada program ini jika kita menggunakan sebuah buzzer lebih baik menggunakan program "Tone/noTone" bisa juga menggunakan "digitalWrite" tergantung kebutuhan.

==============================================================

Program Nada Unik Buzzer :


/* Melody
 * (cleft) 2005 D. Cuartielles for K3
 *
 * This example uses a piezo speaker to play melodies.  It sends
 * a square wave of the appropriate frequency to the piezo, generating
 * the corresponding tone.
 *
 * The calculation of the tones is made following the mathematical
 * operation:
 *
 *       timeHigh = period / 2 = 1 / (2 * toneFrequency)
 *
 * where the different tones are described as in the table:
 *
 * note   frequency   period  timeHigh
 * c          261 Hz          3830  1915
 * d          294 Hz          3400  1700
 * e          329 Hz          3038  1519
 * f          349 Hz          2864  1432
 * g          392 Hz          2550  1275
 * a          440 Hz          2272  1136
 * b          493 Hz          2028  1014
 * C          523 Hz          1912  956
 *
 * http://www.arduino.cc/en/Tutorial/Melody
 */

int speakerPin = 6;

int length = 15; 
char notes[] = "ccggaagffeeddc "; 
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };

int tempo = 300;

void playTone(int tone, int duration) {
  for (long i = 0; i < duration * 1000L; i += tone * 2) {
    digitalWrite(speakerPin, HIGH);
    delayMicroseconds(tone);
    digitalWrite(speakerPin, LOW);
    delayMicroseconds(tone);
  }
}

void playNote(char note, int duration) {
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };

  // play the tone corresponding to the note name
  for (int i = 0; i < 8; i++) {
    if (names[i] == note) {
      playTone(tones[i], duration);
    }
  }
}

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

void loop() {
  for (int i = 0; i < length; i++) {
    if (notes[i] == ' ') {
      delay(beats[i] * tempo); // rest
    } else {
      playNote(notes[i], beats[i] * tempo);
    }
    // pause between notes
    delay(tempo / 2);
  }
}
Note : Yang berwarna biru bisa kita rubah dengan program dibawah ini, hati hati dalam mengedit program jika tidak sesuai bisa eror.

Lagu Pertama : "Do Re Mi Fa Sol La Si DO DO Si La Sol Fa Mi Re Do"
int length = 16; 
char notes[] = "cdefgabCCbagfedc"; 
int beats[] = { 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,4 };

Lagu Kedua : Twinkle Twinkle
int length = 15; 
char notes[] = "ccggaagffeeddc "; 
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };

Lagu Ketiga : Gundul Gundul Pacul
int length = 15; 
char notes[] = "cecefggcecefgg ";
int beats[] = { 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4 };

Penjelasan Program :
int speakerPin = 6;
Int adalah tipe data yang digunakan oleh konstanta "speakerPin" dan "6" adalah Pin arduino yang digunakan

int length = 15; 
char notes[] = "cecefggcecefgg ";
int beats[] = { 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4 };
int tempo = 300;
Int length = 15; adalah panjang nada
char notes [] = "cecefggcecefgg"; adalah lagunya
int beats[] = {1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4}; ini adalah ketukannya semakin besar nilai semakin panjang nada bunyinya
int tempo = 300; adalah tempo lagunya (cepat lambatnya sebuah lagu)

void playNote(char note, int duration) {
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
ini adalah program untuk membuat sebuah nada do re mi fa sol la si do, tentunya juga bersamaan program "duration" delay beats tempo.

Untuk tangga nada nadanya :
  • c = do
  • d = re
  • e = mi
  • f = fa
  • g = sol
  • a = la
  • b = si
  • C = DO

Alhamdulillah sedikit penjelasan Program Buzzer Arduino, kita bisa kembangkan sesuai dengan kita ingin, suara yang dihasilkan buzzer untuk nada unik ini memang kurang baik karena buzzer diperuntukan untuk alarm, bisa diganti dengan speaker.

Sekian tulisan sedikit dari saya tentang "Ringtone Menggunakan Buzzer Arduno". Semoga bermanfaat dan follow terus website ini untuk mendapatkan artikel menarik dari www.ajifahreza.com semoga bermanfaat,  teruslah berkarya dan jangan lupa berdoa aamiin

Ajifahreza

About Ajifahreza -

Hanya seorang blogger biasa, ingin menjadi hebat dibidang elektronika pemrograman komputer dan mikrokontroler

Subscribe to this Blog via Email :
Cara Seo Blogger