Ana içeriğe atla

Arduino Kullanarak Butonlar ile Belirli Bir Sesi Oynatma Projesi

 


#include <pcmConfig.h>
#include <pcmRF.h>
#include <TMRpcm.h>
#include "SD.h"
#include "SPI.h"

#define SD_ChipSelectPin 53

TMRpcm au;
String nowPlaying = "";

void setup(){
 
 pinMode(2, INPUT);
 pinMode(3, INPUT);
 pinMode(4, INPUT);
 pinMode(5, INPUT);
 pinMode(6, INPUT);
 pinMode(7, INPUT);
 pinMode(8, INPUT);
 pinMode(9, INPUT);
 pinMode(10, INPUT);
 pinMode(11, INPUT);
 pinMode(12, INPUT);
 pinMode(13, INPUT);

 au.speakerPin = 46;
 au.setVolume(5.7);
 
 Serial.begin(9600);

 if(!SD.begin(SD_ChipSelectPin)) {
    Serial.println("SD Card Not Found");
    return;
  }else{
    Serial.println("SD Card Reading Success");
  }
}

void loop() {
  
  if(!au.isPlaying()){
    if(digitalRead(2) == HIGH){
    Serial.println("a oynatiliyor"); //2. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
    au.play("a.wav"); //2. pinde hangi parça çalacaksa a.wav yerine o parçanın adını yazınız
    nowPlaying = "a.wav"; //2. pinde hangi parça çalacaksa a.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
    }
    else if(digitalRead(3) == HIGH){
      Serial.println("b oynatiliyor"); //3. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("b.wav"); //3. pinde hangi parça çalacaksa b.wav yerine o parçanın adını yazınız
      nowPlaying = "b.wav"; //3. pinde hangi parça çalacaksa b.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(4) == HIGH){
      Serial.println("c oynatiliyor"); //4. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("c.wav"); //4. pinde hangi parça çalacaksa c.wav yerine o parçanın adını yazınız
      nowPlaying = "c.wav"; //4. pinde hangi parça çalacaksa c.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(5) == HIGH){
      Serial.println("d oynatiliyor"); //5. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("d.wav"); //5. pinde hangi parça çalacaksa d.wav yerine o parçanın adını yazınız
      nowPlaying = "d.wav"; //5. pinde hangi parça çalacaksa d.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(6) == HIGH){
      Serial.println("e oynatiliyor"); //6. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("e.wav"); //6. pinde hangi parça çalacaksa e.wav yerine o parçanın adını yazınız
      nowPlaying = "e.wav"; //6. pinde hangi parça çalacaksa e.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(7) == HIGH){
      Serial.println("f oynatiliyor"); //7. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("f.wav"); //7. pinde hangi parça çalacaksa f.wav yerine o parçanın adını yazınız
      nowPlaying = "f.wav"; //7. pinde hangi parça çalacaksa f.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(8) == HIGH){
      Serial.println("g oynatiliyor"); //8. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("g.wav"); //8. pinde hangi parça çalacaksa g.wav yerine o parçanın adını yazınız
      nowPlaying = "g.wav"; //8. pinde hangi parça çalacaksa g.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(9) == HIGH){
      Serial.println("h oynatiliyor"); //9. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("h.wav"); //9. pinde hangi parça çalacaksa h.wav yerine o parçanın adını yazınız
      nowPlaying = "h.wav"; //9. pinde hangi parça çalacaksa h.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(10) == HIGH){
      Serial.println("i oynatiliyor"); //10. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("i.wav"); //10. pinde hangi parça çalacaksa i.wav yerine o parçanın adını yazınız
      nowPlaying = "i.wav"; //10. pinde hangi parça çalacaksa i.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(11) == HIGH){
      Serial.println("j oynatiliyor"); //11. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("j.wav"); //11. pinde hangi parça çalacaksa j.wav yerine o parçanın adını yazınız
      nowPlaying = "j.wav"; //11. pinde hangi parça çalacaksa j.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(12) == HIGH){
      Serial.println("k oynatiliyor"); //12. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("k.wav"); //12. pinde hangi parça çalacaksa k.wav yerine o parçanın adını yazınız
      nowPlaying = "k.wav"; //12. pinde hangi parça çalacaksa k.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
      else if(digitalRead(13) == HIGH){
      Serial.println("m oynatiliyor"); //13. pin için hangi parçayı oynatacaksanız çıktısında ilgili parçayı belirtebilirsiniz
      au.play("m.wav"); //13. pinde hangi parça çalacaksa m.wav yerine o parçanın adını yazınız
      nowPlaying = "m.wav"; //13. pinde hangi parça çalacaksa m.wav yerine o parçanın adını yazınız (bir üst satırda belirttiğiniz parçayı aynen buna da yazınız)
      }
  }else{
    
    /*Kodlarda kesinlikle hiçbir hata veya mantık hatası yoktur. Eğer bir hata alıyorsanız pinlerde akım kalmadığına ve pinlerin doğru çalıştığına emin olunuz!
    İsterseniz delay komutunu kaldırabilirsiniz.*/
    
    if(digitalRead(2) == HIGH && nowPlaying != "a.wav"){ //2. pin için daha önce üst kısımda hangi parçayı belirlediyseniz a.wav yerine o parçanın adını yazınız
    Serial.println(nowPlaying + " durduruldu (NOW PIN2)");
    au.disable();
    delay(3000);
    }
    else if(digitalRead(3) == HIGH && nowPlaying != "b.wav"){ //3. pin için daha önce üst kısımda hangi parçayı belirlediyseniz b.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN3)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(4) == HIGH && nowPlaying != "c.wav"){ //4. pin için daha önce üst kısımda hangi parçayı belirlediyseniz c.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN4)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(5) == HIGH && nowPlaying != "d.wav"){ //5. pin için daha önce üst kısımda hangi parçayı belirlediyseniz d.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN5)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(6) == HIGH && nowPlaying != "e.wav"){ //6. pin için daha önce üst kısımda hangi parçayı belirlediyseniz e.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN6)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(7) == HIGH && nowPlaying != "f.wav"){ //7. pin için daha önce üst kısımda hangi parçayı belirlediyseniz f.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN7)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(8) == HIGH && nowPlaying != "g.wav"){ //8. pin için daha önce üst kısımda hangi parçayı belirlediyseniz g.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN8)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(9) == HIGH && nowPlaying != "h.wav"){ //9. pin için daha önce üst kısımda hangi parçayı belirlediyseniz h.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN9)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(10) == HIGH && nowPlaying != "i.wav"){ //10. pin için daha önce üst kısımda hangi parçayı belirlediyseniz i.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN10)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(11) == HIGH && nowPlaying != "j.wav"){ //11. pin için daha önce üst kısımda hangi parçayı belirlediyseniz j.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN11)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(12) == HIGH && nowPlaying != "k.wav"){ //12. pin için daha önce üst kısımda hangi parçayı belirlediyseniz k.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN12)");
      au.disable();
      delay(3000);
      }
      else if(digitalRead(13) == HIGH && nowPlaying != "m.wav"){ //13. pin için daha önce üst kısımda hangi parçayı belirlediyseniz m.wav yerine o parçanın adını yazınız
      Serial.println(nowPlaying + " durduruldu (NOW PIN13)");
      au.disable();
      delay(3000);
      }
    }
}

Bu blogdaki popüler yayınlar

C Programlama Dili ile Dizi Kullanarak Hesaplama Yapmak

Tekrardan merhabalar, örnek programları ve kodları rastgele zorluk seviyesiyle paylaşmaya başlıyorum. Öncelikle C programlama dili ile ilgili örnek paylaşacağım ve bunlardan ilki  Satır ve Sütun Oluşturarak Satıra Bağlı Sütun Girdilerini Hesaplayan Program . Bağlantıya tıklayarak ilgili sayfaya gidebilir ve örnek programın kaynak kodlarına ulaşabilirsiniz. Bu programda kullanıcıdan satır ve sütun miktarını girdi olarak alıyoruz. Örnek olarak 2 ve ardından tekrar 2 girdisini aldık. Her biri 2 sütuna sahip 2 satır oluşturmuş olduk. Ardından sütun elemanlarını bulunduğu satıra bağlı olarak topladık. Her satırı tek tek ele alarak topladıktan sonra ise tüm sütun elemanlarını toplayan programı yaptık. İyi öğrenmeler!

Kruskal Algoritması Kullanılan Bir Python Projesi

  Eveeet arkadaşlar işler ciddiye binmeye başladı. Bunu yapana kadar canım çıkmıştı. Bana en zor gelen ikinci projedir kendileri. Birincisi veri madenciliği dersiyle alakalı gerçekten bunalıma sokan öldüren bitiren bir projeydi. Her neyse nedir bu kruskal algoritması python projesi falan burada biraz bahsedeyim. Kruskal algoritması noktalar arasında en kısa mesafeyi bulan bir algoritma. 3 nokta ele alalım ve bunlar A, B, C olsun. A ve B arası 2 birim, B ve C arası 3 birim, A ve C arası 1 birim olsun. Bu bağlamda A noktasından başlarsak tüm noktalara gidecek şekilde en kısa yol nasıl belirlenir sorusuna bu algoritmayla cevap verebiliriz. Bizde de projeden bu isteniyor, bir nokta belirtip o noktadan başlamak fakat ben onu yapabildim mi? Hayır galiba pek hatırlamıyorum, siz uyguladığınızda bakarsınız ben şimdi tekrar bakmaya üşendim. Ama yüksek ihtimalle belirtilen bir noktadan başlayarak değil de direkt tüm noktalardan en mantıklı ve kısa olanını alacak şekilde yaptım. Her neyse lafı...