Ana içeriğe atla

Arduino Buzzer için Örnek Müzik Kodları



Bugün ki yazımda programlaması tamamıyla bana ait olan bazı buzzer kodlarını yazımın devamında paylaşıyor olacağım.
Öncelikle bağlantı şemasıyla başlayalım;

Malzemeler:

  1. Arduino (Uno, Nano, Mega)
  2. 100 Ohm Direnç
  3. Breadboard

Bağlama Tarifi:

Buzzer'da iki bacak bulunur. Buzzer'ın üstüne baktığınızda bacaklardan birisinin hizasında (+) yazar. Bu bacağı 8 No.lu pine bağlayabilirsiniz. veya istediğiniz herhangi başka bir digital bacak da olabilir. Kodunuzu da ona göre düzenlemeniz gerekir. İkinci bacağı da direnç üzerinden GND (-) Toprak hattına bağlamak gerekir.

Bağlantı Şeması:

Yukarıdaki şemada siyah (-), kırmızı (+) ucu temsil etmektedir.

Ben kodlara ilgili notaların frekanslarını ekledim. Örnek olarak da 2 adet müziği buraya ekleyeceğim. sizler diğer müziklerin notalarını öğrendikten sonra duraksamaları deneme yanılma yoluyla bulabilirsiniz. Takıldığınız yerde aşağıya yorum bırakırsanız seve seve yardımcı da olabilirim.

Notalar:



1
2
3
4
5
6
7
8
#define doo  1000// do komutu ile karismasin diye doo yazdim (kalin do)
#define re   1122
#define mi   1260
#define fa   1335
#define sol  1498
#define la   1681
#define si   1887
#define dom  2000// do komutu ile karismasin diye dom yazdim (ince do)

Yukarıdaki kodu projemizin en başına eklersek artık notaları çağırıken sadece yanındaki isimleri ile çağırabiliriz. Örnek: re gibi.

Örnek Kod -1 Süt İçtim Dilim Yandı:

Türkünün Orjinali:




Arduino kodları:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define doo  1000// do komutu ile karismasin diye doo yazdim (kalin do)
#define re   1122
#define mi   1260
#define fa   1335
#define sol  1498
#define la   1681
#define si   1887
#define dom  2000// do komutu ile karismasin diye dom yazdim (ince do)

int melodi[] =     {re,mi,fa,sol,fa,sol,sol,sol, fa, sol,sol,sol ,fa, mi, re,mi,fa,sol,fa,sol,sol,sol, fa, sol,sol,sol ,fa, mi,   re, mi ,fa,sol,mi,fa,re,mi,doo,doo,fa,mi,re,re,re, mi ,fa,sol,mi,fa,re,mi,doo,doo,fa,mi,re,re };
int notasuresi[] = {4,  4,  4,  4, 4,  4,4,  3 ,4,4,4,4,4,2,4,  4,  4,  4, 4,  4,4,  3 ,4,4,4,4,4,2       ,4,4,4,4,4,4,4,4,4,4,4,4,2,2,    4,4,4,4,4,4,4,4,4,4,4,4,2,2};// her notanin süresini array yaptim
int tempo = 1200;
void setup() 
{ 
  for (int Nota = 0; Nota <56; Nota++) 
    {
      int sure = tempo/notasuresi[Nota];
     tone(8, melodi[Nota],sure);// 8 numarali bacaktan notalarin frekanslarini nota uzunluklarina göre gönder
     delay(sure*1.2);// notalar arasinda biraz beklesin. Eger 1 ile çarparsaniz notalar birbirine bitisik olur
    }
 }
void loop() {
 }

Sizler öncelikle int melodi[] yanına notalarınızı sıralayınız. Daha sonra notasuresi[] kısmından her nota için ayrı süreleri belirleyin. Her bir sayı yukarıda bir notayı temsil eder. Tempo ise hız değişkenidir. alttaki for döngüsünü de nota sayısına götürmelisiniz. tone() içine yazdığınız ilk değişken de buzzer'i bağladığınız bacak pin numarasadır.



Örnek Kod -2 Hangimiz Sevmedik:

Şarkının Orjinali:



Arduino Kodları:



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define doo  1000// do komutu ile karismasin diye doo yazdim (kalin do)
#define re   1122
#define mi   1260
#define fa   1335
#define sol  1498
#define la   1681
#define si   1887
#define dom  2000// do komutu ile karismasin diye dom yazdim (ince do)

int melodi[] =     {doo,re,dom ,si,doo,si,doo,re,dom ,si,doo,si,doo,re,dom ,si,doo,si,  la,si,la,sol,fa,la };
int notasuresi[] = {6,  6,  2,  6, 6,  2,6,  6,  2, 6 , 6,  2,6,  6,  2,  6, 6,  2,  6,9,8,5,5,2 };// her notanin süresini array yaptim
int tempo = 1200;
void setup() 
{ 
  for (int Nota = 0; Nota <24; Nota++) 
    {
      int sure = tempo/notasuresi[Nota];
     tone(8, melodi[Nota],sure);// 8 numarali bacaktan notalarin frekanslarini nota uzunluklarina göre gönder
     delay(sure*1.2);// notalar arasinda biraz beklesin. Eger 1 ile çarparsaniz notalar birbirine bitisik olur
    }
 }
void loop() {
 }

Süt içtim için olan aynı talimatlar geçerlidir.
İlgili GitHub repository'si için;
 github-abraxelx

Soru ve sorunlarınızı yorumlarda bildirebilirsiniz. 

Yorumlar

  1. merhaba kolay gelsin,çalışma için emeğinize sağlık. Çanakkale türküsüne ait kodlar elinizde varsa paylaşabilir misiniz?

    YanıtlaSil
  2. merhaba kolay gelsin,çalışma için emeğinize sağlık. Çanakkale türküsüne ait kodlar elinizde varsa paylaşabilir misiniz?

    YanıtlaSil
    Yanıtlar
    1. Merhaba Selen hanım, bu kodları kendim yazmıştım. Yukarıda tekniğinden bahsettim aslında birazcık uğraşsanız zannediyorum ki Çanakkale türküsünün notalarını tutturabilirsiniz.

      Sil
    2. HELAL OLSUN DAYI OĞLİ

      Sil
    3. en büyük gs

      Sil
    4. rerererere rararaararrara galatasaray galatasaray cimbom bom

      Sil
    5. yarraklı ilteriş

      Sil
  3. Merhabalar hocam ben bunu megafona bağlayıp herhangi bir muzigin sesini alabilirmiyim

    YanıtlaSil
  4. Muzik ile bir korna yapmayi istiyorum konu çok karışık lutfen yardimci olurmusunuz

    YanıtlaSil
  5. Yanıtlar
    1. sak noel kodlarını yapabilir misiniz

      Sil
    2. fccfdhfdfrfrjfrk dzsuj35aq4juu
      547y

      5s
      4ı7yj5a7

      Sil
  6. [Nota] tanımlanmadı diye hata veriyo orayı bir düzenleyelim

    YanıtlaSil
  7. acaba tempo tam olarak ne ifade ediyor hız değişkeni demişsinizde o ne demek tam olarak :)

    YanıtlaSil
  8. birde bekleme süresi ne cinsinden acaba

    YanıtlaSil
  9. mehter marşının kodlarını da yazabilirmisisniz

    YanıtlaSil
    Yanıtlar
    1. CEDDİN DEDEEEEEN NESLİN BABAN

      Sil
    2. ceddin deden neslin baban hep kahraman türk miletti orduları pek çok zaman

      Sil
  10. nota sürelerini nasıl bulcaz başka şarkılar için

    YanıtlaSil
  11. 100 ohm direnç bulamadım sorun olurmu?

    YanıtlaSil
  12. süre kısmındaki 6 , 2 , 9, 8 gibi rakamlar kaç saniye yi ifade etmektedir ?


    YanıtlaSil
    Yanıtlar
    1. Saniye değil, beat tipinde vuruş ve duruş değerleridir.

      Sil
  13. şemşettin bin arabaya

    YanıtlaSil
    Yanıtlar
    1. sen hayırdır laaağğğnnn ya000000rra0000m

      Sil
    2. once sevdiler sonra dovduler once sevdiler sonra dovduler boğürüme vurdular böğürüm ağrıyıo boğürüme vurdular böğürüm ağrıyıo semsettin bin arabaya semsettin

      Sil
  14. Yanıtlar
    1. ben yasin

      Sil
    2. benim adım cafer boyum bir on göz rengimi bilmiyorum

      Sil
  15. HELOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO???????????_:_

    YanıtlaSil
  16. Irmakla arası birleştir

    YanıtlaSil
  17. messi lezzetin sesi

    YanıtlaSil

Yorum Gönder

Konuyla ilgili yorum giriniz.

Bu blogdaki popüler yayınlar

16x2 LCD I2C (i2c) Hataları ve Çözümler

Merhaba arkadaşlar arduino I2C modülü kullanımında oluşan bazı hatalardan bahsetmek istiyorum. Öncelikle bu modülle görüntü alamıyorsanız arkasındaki potansiyometreyi sağa ve sola çevirerek uygun konstrata getirin bu sebeple yazılar görünmüyor olabilir. Bağladığınızda arduino kapanıyorsa kısa devre vardır lehim aralıklarını kontrol edin temas olabiliyor. Eğer tek karakter ekranda çıkıyor diğer karakterler çıkmıyorsa aşağıda verdiğim kütüpaneyi yükleyin sorununuz çözülecektir. Eğer buna rağmen görüntü alamıyorsanız LCD panel adresiniz farklı olabilir  LiquidCrystal_I2C lcd(0x27, 16, 2);  kod satırındaki " 27 " yi " 3f " yapın. Yani şöyle olmalı  LiquidCrystal_I2C lcd(0x3f, 16, 2);  Bu şekilde büyük olasılıkla görüntü alamama sorununuz çözülecektir. I2C Port bağlantıları şöyle olmalıdır: gnd-gnd vcc - 5 v sda- A4 scl-A5 pinine bağlanmalıdır. Örnek Kod: #include <Wire.h> #include <LiquidCrystal_I2C.h> // LCD adres 0x3f 16 kara

PID Algoritmalı Çizgi İzleyen Robot (PID Line Follower)

PID var olan bir problemin çözümünde  Oranı, integrali ve Türevi toplayarak bir hata oranı çıkarır ve bunu minimuma indirgemek için bir yol geliştirilir. Daha sonra PID'nin detaylı açıklamasını yaparım. Bu yazıdaki amacım hani hep gördüğünüz virajları çok hızlı dönen çizgi izleyenlerin nasıl yapıldıklarını nacizane göstermek. Malzemeler: Arduino Nano veya UNO Pololu QTR 8RC Kızıl ötesi sensör dizisi Pololu TB6612FNG Motor Sürücü 2 Adet Redüktörlü 6V DC Motor 9V Tercihen Duracell Pil (Arduino beslemesi için)  11.1V bir Li-Po pil (Motor sürücü için) Bağlantı Şeması: Kaynak Kodu: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 #include <QTRSensors.h> #define Kp 0 // Kendi deneyimlerinizle bulmanız gerekli küçük bir değer ile başlayıp, büyütebilirsiniz en kararlı Kp değerini bulana kadar.. #