Merhaba arkadaşlar, Polifonik ses diye tabir edilen şey aynı anda birden fazla ses tonunun oluşturulmasına denir. Bu sistem arduino ile oluşturulması hayal olmaktan çıkabilir.

Arduino ile Polifonik Ses Oluşturma

Merhaba arkadaşlar, Polifonik ses diye tabir edilen şey aynı anda birden fazla ses tonunun oluşturulmasına denir. Bu sistem arduino ile oluşturulması hayal olmaktan çıkabilir.

 

 

Merhaba arkadaşlar, Polifonik ses diye tabir edilen şey aynı anda birden fazla ses tonunun oluşturulmasına denir. Bu sistem arduino ile oluşturulması hayal olmaktan çıkabilir.

Arduinomuzla projelerimizde genellikle bir adet hoparlör ile kullanıyorduk aslına bakarsanız tek bir hoparlör ile bu seslerin çıkarılması mümkün değil. Bundan dolayı birden fazla hoparlör kullanmamız gerekecek.

Projemizde arduino ile 3 adet hoparlör kullanılmıştır.

Bu hoparlörlerin hangisinin aktif olduğunu belirtmek için 3 adet LED kullanıldı.

 

 

Kullanılan Malzemeler

Arduino UNO

 

3x Hoparlör3x LED

3x Led

3x 100 ohm Direnç

Uygulama 

#include <Tone.h>

Tone solo;
Tone bass;
Tone rythm;

const int t = 600; // quater note duration
const int tt = t*2;
const int t14 = round(t*1/4);
const int t24 = round(t*2/4);
const int t34 = round(t*3/4);

const int bassLedPin = 15; // bass led signal pin (aka A1)
const int rythmLedPin = 17; // rythm led signal pin (aka A3)
const int soloLedPin = 19; // solo led signal pin (aka A5)

void wait(Tone t)
{
while (t.isPlaying()) { }
}

int bassLedState = LOW;
void switchBassLed()
{
if (bassLedState == LOW)
bassLedState = HIGH;
else
bassLedState = LOW;
digitalWrite(bassLedPin, bassLedState);
}

int rythmLedState = LOW;
void switchRythmLed()
{
if (rythmLedState == LOW)
rythmLedState = HIGH;
else
rythmLedState = LOW;
digitalWrite(rythmLedPin, rythmLedState);
}

int soloLedState = LOW;
void switchSoloLed()
{
if (soloLedState == LOW)
soloLedState = HIGH;
else
soloLedState = LOW;
digitalWrite(soloLedPin, soloLedState);
}

void setup(void)
{
pinMode(14, OUTPUT); // led ground pin (aka A0)
pinMode(16, OUTPUT); // led ground pin (aka A2)
pinMode(18, OUTPUT); // led ground pin (aka A4)
pinMode(bassLedPin, OUTPUT); // bass led signal pin
pinMode(rythmLedPin, OUTPUT); // rythm led signal pin
pinMode(soloLedPin, OUTPUT); // solo led signal pin

pinMode(2, OUTPUT); // solo buzzer ground pin
pinMode(9, OUTPUT); // rythm buzzer ground pin

solo.begin(6); // solo buzzer signal pin
bass.begin(12); // bass buzzer signal pin
rythm.begin(0); // rythm buzzer signal pin

solo.play(NOTE_D4, t34); switchSoloLed();
wait(solo);
solo.play(NOTE_D4, t14); switchSoloLed();
wait(solo);
}

void loop(void)
{

bass.play(NOTE_G3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_E4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_B3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_D4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_D4, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_G4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);

bass.play(NOTE_D4, t); switchBassLed();
rythm.play(NOTE_D5, t24); switchRythmLed();
solo.play(NOTE_FS4, tt); switchSoloLed();
wait(rythm);
rythm.play(NOTE_FS5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_A5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_FS4, t); switchBassLed();
rythm.play(NOTE_D5, t24); switchRythmLed();
wait(rythm);
rythm.play(NOTE_FS5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_A5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_A4, t); switchBassLed();
rythm.play(NOTE_D5, t24); switchRythmLed();
solo.play(NOTE_D4, t34); switchSoloLed();
wait(rythm);
rythm.play(NOTE_FS5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_A5, t14); switchRythmLed();
solo.play(NOTE_D4, t14); switchSoloLed();
wait(rythm);

bass.play(NOTE_D4, t); switchBassLed();
rythm.play(NOTE_D5, t24); switchRythmLed();
solo.play(NOTE_E4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_FS5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_A5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_FS4, t); switchBassLed();
rythm.play(NOTE_D5, t24); switchRythmLed();
solo.play(NOTE_D4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_FS5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_A5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_A4, t); switchBassLed();
rythm.play(NOTE_D5, t24); switchRythmLed();
solo.play(NOTE_A4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_FS5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_A5, t14); switchRythmLed();
wait(rythm);

bass.play(NOTE_G3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_G4, tt); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_B3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_D4, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_D4, t34); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
solo.play(NOTE_D4, t14); switchSoloLed();
wait(rythm);

bass.play(NOTE_G3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_D5, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_B3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_B4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_D4, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_G4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);

bass.play(NOTE_C4, t); switchBassLed();
rythm.play(NOTE_C5, t24); switchRythmLed();
solo.play(NOTE_FS4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_E5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_G5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_E4, t); switchBassLed();
rythm.play(NOTE_C5, t24); switchRythmLed();
solo.play(NOTE_E4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_E5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_G5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_G4, t); switchBassLed();
rythm.play(NOTE_C5, t24); switchRythmLed();
solo.play(NOTE_C5, t34); switchSoloLed();
wait(rythm);
rythm.play(NOTE_E5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_G5, t14); switchRythmLed();
solo.play(NOTE_C5, t14); switchSoloLed();
wait(rythm);

bass.play(NOTE_G3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_B4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_D3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_G4, t); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_FS3, t); switchBassLed();
rythm.play(NOTE_D5, t24); switchRythmLed();
solo.play(NOTE_A4, t); switchSoloLed();
wait(rythm);
wait(rythm);
rythm.play(NOTE_FS5, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_A5, t14); switchRythmLed();
wait(rythm);

bass.play(NOTE_G3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
solo.play(NOTE_G4, tt); switchSoloLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
bass.play(NOTE_B3, t); switchBassLed();
rythm.play(NOTE_G4, t24); switchRythmLed();
wait(rythm);
rythm.play(NOTE_B4, t14); switchRythmLed();
wait(rythm);
rythm.play(NOTE_D5, t14); switchRythmLed();
wait(rythm);
solo.play(NOTE_D4, t34); switchSoloLed();
wait(solo);
solo.play(NOTE_D4, t14); switchSoloLed();
wait(solo);

}

 

Çalışma prensibi 

About Ferhat Çelik

Elektronik mühendisliği için kitaplarla savaşan ve arası hiç iyi olmayan kişi. Kendi gibi elektronik ile ilgileneler için devre arşiv'i kuran Ferhat ÇELİK..

Check Also

5110 LCD ile Menu Yapımı

Merhaba arkadaşlar. Projelerimizde kullanacağımız geliştirmeye açık ve çok işe yarayacağını düşündüğüm menu oluşturmadan bahsetmek istiyorum. …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Arduino