17 Haziran 2016 Cuma

PIC 16F628 ile Piyano Devresi




Piyano devresi, elektronik org

Bu devremizde, piyano 7 notadan oluşmaktadır. Öncelikle elektronik olarak notaların nasıl oluştuğuna değinelim.

Her notanın farklı bir frekansı vardır. Diğer müzik aletlerinden de bildiğimiz gibi ses titreşimlerden meydana gelir. örneğin ''do'' notasının frekansı 262 dir. Yani ''do'' notasını oluşturabilmek için cismi saniyede 262 kez titreştirmemiz gerekir. Bu da ilginç bir tabir oldu tabi. Gelelim bu titreşimleri PIC mikrodenetleyicisiyle nasıl oluşturacağımıza:



Frekans ile periyot arasında   f=1/T bağlantısı vardır. Burada f frekansı temsil eder ve birimi Herz'dir. T ise periyodu temsil eder ve birimi saniyedir. do notasının frekansının 262 olduğunu biliyoruz. Aslında tam değeri 261.6 ancak ben bu kadar hassasiyete gerek olmadığını düşünüyorum. en azından bu devre için.
do notasını oluşturmak için yazacağımız koda geçmeden önce periyodunu hesaplamamız gerekiyor.

T=1/262          T=0.0038167939 saniye yani 3.8167939 ms olarak bulunur. Bu süre bize bir titreşim oluşturmak için ne kadar süremiz olduğunu söylüyor. biz sinyalimizi kare dalga olarak göndereceğimiz için bu sürenin yarısı kadar sürede çıkışımız 1 olacak; kalan sürede de çıkışımız lojik 0 olacak şekilde kodumuzu yazarsak:

output_high(HOPARLOR);
delay_us(1908);
output_low(HOPARLOR);
delay_us(1908);

aynı mantık ile diğer notaları da oluşturabiliriz.


Şemada da görüldüğü üzre devrede 7 adet buton ve bu butonlara basıldığında yanan 7 adet led var. Ledlerin koyulma sebebi devrede bir de otomatik çalma özelliğinin olması. Devrede bulunan switch iki konumlu. 1 konumundayken kullanıcı butonları kullanarak istediği şarkıyı çalabilmekte. switch 2 konumundayken ise benim daha önce pic e yazılımsal olarak yüklediğim ''caddelerde rüzgar'' şarkısı çalıyor. Çalması kolay bir şarkı olduğu için bunu yükledim tabi ki özel bir sebebi yok :)

devrenin .c dosyasını da paylaşacağım. siz de başka şarkılar yükleyebilirsiniz hatta eeprom data memory kullanarak çaldığınız şarkıları direkt olarak kaydedip daha sonra çaldırabilirsiniz.

devrenin baskı devre görüntüsü:

devrenin çalışma videosu:



devreye ait dosyaları buradan indirebilirsiniz

yukarıdaki bağlantıda devresinin isis dosyası da verilmiştir. bu dosyayı indirip şema üzerindeki PIC e yukarıdak bağlantıda verilen hex dosyasını yükleyip devrenin çalıştığını basmadan önce gözlemleyip içiniz rahat bir şekilde devreyi basabilirsiniz :)
iyi çalışmalar...

4 yorum:

Elektrikçi dedi ki...

Devreyi yaptım ama led ışıkları yanmiyor nedeni ne olabilir

Yahya dedi ki...

Merhaba. devrenin çiziminde ledlerin yönünü ters çizmişim. en kısa zamanda bu hatayı düzelteceğim. Ledlerin anot ucunu butonlara doğru koyarsanız çalışacaktır. iyi günler

Adsız dedi ki...

Merhaba pcb çizimi de ekler misiniz rica etsem :)

Unknown dedi ki...

Merhabalar, devreyi isis ortamında kurdum fakat hem kaydı çaldıramıyorum hem de buzzerı aktifleştiremiyorum. Yanlış bir component seçmediğimi düşünüyorum, fakat kodda bir sorun olabilir çünkü PIC ' te 1 numaralı Pine bağlı olan transistör base'i hiçbir şekilde enerjilenmiyor. Dolayısıyla transistör üzerinden de speaker'ı süremiyorum.

Dilerseniz mail yazın size mail atayım ısıs şematiğimi.