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 Kare ve Dairenin Alanını Bulan Program

 İyi akşamlar! Sizler belki de mışıl mışıl uyuyorken ben buralarda takılmaya devam ediyorum :) Bu seferki paylaşımım başlıktan da anlaşılacağı üzere  Kare ve Dairenin Alanını Bulan Program . Bağlantıya tıklayarak ilgili sayfaya gidebilir ve programın kaynak kodlarına erişebilirsiniz. Bu da C programlama dili ile yapılmış basit bir konsol uygulaması tabii ki. Bu programda do while kullandık ona göre! Ayrı fonksiyonlar oluşturduk ve onları işleme çağırdık. İçeriğini çok fazla anlatmama gerek yok sanırım çünkü başlık cuk diye kısa ve öz bir biçimde her şeyi anlatıyor. İyi öğrenmeler!

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!

C Programlama Dili ile Otomat Makinesi Yapmak

 İşte en sevdiğim, göz bebeğim, favori C projem  Otomat Makinesi Programı . Bağlantıya tıklayarak ilgili sayfaya uçuş gerçekleştirebilir ve bu şaheserime ve bana saygı duyarak kendinize fayda sağlayacak şekilde kullanabilirsiniz. Bu programda fonksiyonlar, göstergeler ve diziler kullanılmıştır. Programın gereksinimleri ve kaynak kodları ilgili sayfada yer almaktadır. Normalde öve öve bitiremeyeceğim canım projemle sizi baş başa bırakayım ve keyifle uygulamanızı temenni edeyim. İyi öğrenmeler!