Arduino İle Star Wars İmparatorluk Marşı


Hadi Yapalım !

Öncelikle bir Star Wars hayranı olarak, çalışmanın çok kolay ve çok eğlenceli olduğunu söylemek istiyorum. Led ışıklarının ritim ile koordineli bir şekilde yanıp sönmesi işin esprisi zaten. Hiç vakit kaybetmeden çalışmamıza başlayalım. Hem görsel hem de videolu bir şekilde anlatacağım.

 

Gerekli Malzemeler

 1 Adet Arduino UNO, 1 Adet Buzzer, 1 Adet Uzun Breadboard, 7 Adet erkek-erkek Jumper kablo, Kırmızı LED ve Yeşil LED (Kırmızı ve yeşil olmak zorunda değil, siz kendi isteğinize göre de farklı renk ledler kullanabilirsiniz. RGB olmamasına dikkat edin)

Arduino UNO – Her tür UNO modelini kullanabilirsiniz.
Buzzer – Marşımızı çalacak olan küçük arkadaşımız 🙂
Uzun Breadboard – Devremizi bunun üzerine kuracağız.
Erkek-Erkek Jumper Kablo – Elektrik akımını ve verileri bu arkadaşlarımız taşıyacak.
Farklı renklerde ledler – Ben yeşil ve kırmızı kullanacağım.

Malzemeler Hazır !

Fritzing ile hazırladığım devreyi görsel olarak yazıya yerleştiriyorum. Bu görsele göre devrenizi hazırlayabilirsiniz.

Tam boyutta gör seçeneğine tıklarsanız hangi kablonun nereye bağlandığını daha net görebilirsiniz. Buzzer kırmızı ayağı + kutbunu temsil ediyor.
Bağlantıları yaptığınızda sonuç şu şekilde olmalıdır:
Breadboard ters çevrilmiş bir şekilde devremi kurdum. Aklınız karışmasın.


Kodlarımız

const int c = 261;
const int d = 294;
const int e = 329;
const int f = 349;
const int g = 391;
const int gS = 415;
const int a = 440;
const int aS = 455;
const int b = 466;
const int cH = 523;
const int cSH = 554;
const int dH = 587;
const int dSH = 622;
const int eH = 659;
const int fH = 698;
const int fSH = 740;
const int gH = 784;
const int gSH = 830;
const int aH = 880;
 
const int buzzerPin = 8;
const int ledPin1 = 12;
const int ledPin2 = 13;
 
int counter = 0;
 
void setup()
{
  //pinModlarını belirtiyorum.
  pinMode(buzzerPin, OUTPUT);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
}
 
void loop()
{
 
  //İlk bölümü başlatıyorum.
  firstSection();
 
  //İkinci bölümü başlatıyorum.
  secondSection();
 
  //Varyant 1
  beep(f, 250);  
  beep(gS, 500);  
  beep(f, 350);  
  beep(a, 125);
  beep(cH, 500);
  beep(a, 375);  
  beep(cH, 125);
  beep(eH, 650);
 
  delay(500);
 
  //İkinci bölümü tekrarlatıyorum.
  secondSection();
 
  //Varyant 2
  beep(f, 250);  
  beep(gS, 500);  
  beep(f, 375);  
  beep(cH, 125);
  beep(a, 500);  
  beep(f, 375);  
  beep(cH, 125);
  beep(a, 650);  
 
  delay(650);
}
 
void beep(int note, int duration)
{
  
  tone(buzzerPin, note, duration);
 
  //'counter' değişkenine bağlı olarak farklı ledlerin yanmasını sağlıyorum.
  if(counter % 2 == 0)
  {
    digitalWrite(ledPin1, HIGH);
    delay(duration);
    digitalWrite(ledPin1, LOW);
  }else
  {
    digitalWrite(ledPin2, HIGH);
    delay(duration);
    digitalWrite(ledPin2, LOW);
  }
 
  
  noTone(buzzerPin);
 
  delay(50);
 

  counter++;
}
 
void firstSection()
{
  beep(a, 500);
  beep(a, 500);    
  beep(a, 500);
  beep(f, 350);
  beep(cH, 150);  
  beep(a, 500);
  beep(f, 350);
  beep(cH, 150);
  beep(a, 650);
 
  delay(500);
 
  beep(eH, 500);
  beep(eH, 500);
  beep(eH, 500);  
  beep(fH, 350);
  beep(cH, 150);
  beep(gS, 500);
  beep(f, 350);
  beep(cH, 150);
  beep(a, 650);
 
  delay(500);
}
 
void secondSection()
{
  beep(aH, 500);
  beep(a, 300);
  beep(a, 150);
  beep(aH, 500);
  beep(gSH, 325);
  beep(gH, 175);
  beep(fSH, 125);
  beep(fH, 125);    
  beep(fSH, 250);
 
  delay(325);
 
  beep(aS, 250);
  beep(dSH, 500);
  beep(dH, 325);  
  beep(cSH, 175);  
  beep(cH, 125);  
  beep(b, 125);  
  beep(cH, 250);  
 
  delay(350);
}

*Star Wars İmparatorluk Marşı notalarını internetten aldım.

Kodları Arduino UNO’ya yükledikten sonra arkanıza yaslanın ve Darth Vader ile gururla eserinizin tadını çıkarın 🙂

*Video bana aittir. Kişisel YouTube kanalım üzerinden yayınladığım bir videodur. İzinsiz kullanmayın lütfen 🙂

Tüketen Çöküşe, Üreten İstikbale Ulaşır.

Bizi takip etmeniz isteği ve başka yazılarda buluşma dileği ile…

Arduino İle Star Wars İmparatorluk Marşı

Giriş Yap

Hoşgeldin
Don't have an account?
Kayıt Ol

Şifreni Yenile

Back to
Giriş Yap

Kayıt Ol

Ekimize Katılmaya Hazırmısın

Back to
Giriş Yap
Choose A Format
Personality quiz
Series of questions that intends to reveal something about the personality
Trivia quiz
Series of questions with right and wrong answers that intends to check knowledge
Poll
Voting to make decisions or determine opinions
Story
Formatted Text with Embeds and Visuals