back to top

Arduino ile Vu Metre Yapalım

Merhabalar, bir haftasonu projesi olarak düşündüğüm bu projede arduino ile vu metre yani volume unit meter yapımını anlatacağım.

Kısaca vu metre nedir ondan bahsetmek gerekirse, sıralı ledlerden oluşan bir devre. Özelliği ise müziğin ritmine göre ledlerin sıra ile yanıp sönmesi.

Örneklerine buradan bakabilirsiniz. Bizim yapacağımız ise 10 ledli basit bir vu metre olacak. İstediğinize göre led sayısını arttırabilir ya da daha dekoratif hale getirebilirsiniz.

Öncelikle proje için gerekli malzemeler:

Projemizin devre şeması:

Untitled Sketch_bb

Devreyi bu şekilde yaptıktan sonra, kulaklık girişini bilgisayara takınca bilgisayardan ses gelmediğini fark edeceksiniz. Çünkü ses o sırada kulaklık girişine gidiyor. Fakat ses olmadan sadece yanıp sönen ışıklar bir şey ifade etmeyeceği için sesin hem hoparlör girişinden hem de bilgisayardan çıkması gerekmekte. Bunun için de şuradaki videodan yardım alınabilir.

Bu adımı da atlattıktan sonra Arduino kod kısmına geliyoruz

Arduino Kodu:

Kodun çalışma mantığı şu şekilde önce bir dizi ile ledleri tanımlıyoruz. Kodumuzda kullanacağımız değişkenleri tanımlayıp, ledleri çıkış olarak ayarlıyoruz. Loop fonksiyonu içerisinde ise, önce A0 analog pininden okuduğumuz değeri analog_deger değişkenine atıyoruz ve bu değişkeni 5’e bölüyoruz(Siz devreyi bir kere çalıştırdıktan sonra daha büyük ya da küçük sayılara bölebilirsiniz. analog_deger değişkeninin yüksek olması daha az seste daha çok ledin yanması anlamına gelir.). Eğer analog_değer değişkeni 0 ise tüm ledleri söndürüyoruz, değişken 0’dan farklı ise ledleri sırası ile yakmaya başlıyoruz.

int led_pinleri[10] = { 2,3, 4, 5, 6, 7, 8, 9, 10, 11}; 
int analog_deger, i;

void setup()
{
for (i = 0; i < 10; i++)
  pinMode(led_pinleri[i], OUTPUT);
 Serial.begin(9600); 
}

void loop()
{
analog_deger = analogRead(A0);  
Serial.print(analog_deger);
Serial.print("   ");
analog_deger = analog_deger / 5;     
Serial.println(analog_deger); 


  if (analog_deger == 0)  
   {
   for(i = 0; i < 10; i++)
     {
     digitalWrite(led_pinleri[i], LOW);
     }
  }
  
  else
  {
   for (i = 0; i < analog_deger; i++) 
    {
     digitalWrite(led_pinleri[i], HIGH);
    }
    
    for(i = i; i < 10; i++)  
     {
      digitalWrite(led_pinleri[i], LOW);
     }
  }
}

Kodu da Arduino’ya attıktan sonra yukarıda linkini verdiğim videolardaki gibi bir sonuç çıkacaktır.

İşte benim yaptığım devrenin fotoğrafı, video şuan için yok fakat en kısa sürede yüklenecektir.

P_20160609_130917

Son Çıkan Yazılar

24 YORUMLAR

      • Yanıtınız için çok çok teşekkürler Kerem bey.
        Arduino Dersleri 18: RC522 RFID Modül Kullanımı yazınızda bir soru sormuştum, sanırım görmediniz.

        1 ve 2 numaralı kartlar olarak aynı kartı tanımlayın. Daha sonra ikinci koddaki //1 nolu kart okunduysa LED’i yak, 2 nolu kart okunduysa LED’i söndür ile başlayan kısmı altına yer alan iki if döngüsünde yer alan digitalWrite(ledPin, HIGH); satırlarının her ikisini de digitalWrite(ledPin, !digitalRead(ledPin)); olarak değiştirin.

        merhaba. dediğiniz gibi yaptım ama led bir defa yandı ve söndü.

        //1 nolu kart okunduysa LED’i yak, 2 nolu kart okunduysa LED’i söndür
        if (rfid == kart1)
        {
        digitalWrite(ledPin, !digitalRead(ledPin));
        Serial.println(“LED yandi.”);
        }
        if (rfid == kart2)
        {
        digitalWrite(ledPin, !digitalRead(ledPin));
        Serial.println(“LED sondu.”);

    • uln 2803 ile 12v led sürebilirsiniz tabi led akımı ulnnin çıkış kapasitesi ile sınırlı.
      daha yüksek amper isteyen irlz44 gibi lojik mosfet kullanabilir

  1. bende 3.5mm jack kisminda dört kablo var
    yesil, mavi, beyaz kablonun üzerine sarilmis bakir kablo ve kirmizi
    bunlaridan hangisini kullanmaliyim?

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz