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:
- Arduino(Herhangi bir modeli olabilir. Ben UNO kullandım, fakat siz istediğinizi kullanabilirsiniz.),
- 10 adet led,
- 10 adet 220ohm direnç,
- 3.5mm jack girişi(normal bilgisayara bağlanan kulaklıkların girişi)(evde kullanmadığınız kulaklığı kesebilirsiniz.),
- Erkek-Erkek jumper
Projemizin devre şeması:
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.
Teşekkürler. Gayet güzel çalışıyor.
kulaklıkla deniyorum şimdi bunu ama kulaklığın birisi cayırdır. sorun ne olabilir?
pardon cızırdıyor 🙂
sesi ardino pinine girmeden önce mercimek kondansatörden geçir
Sorunsuz çalıştı dün denedik.
Hocam jag grişini takınca çalışmıyor jag ı arduino ya nasıl takmam gerek
Değişken olarak int yerine long kullanırsanız daha temiz çalışıyor
telefonda da işe yarıyormu ?
Kulaklık ses çıkışı mevcut olan tüm cihazlarda kullanabilirsiniz.
merhaba. bu çıkışların herbirinden nasıl 12 v verebiliriz? şerit led kullanmak için.
Merhabalar, buradaki linkte verilen devreyi kendiniz kurabilir ya da hazır olarak 8’li Çıkış Güçlendirici Kart gibi hazır ürünleri kullanabilirsiniz.
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
kardesim yapıyorum ama sadece hepsi yanıyor telefondan muzik açınada yanıyor bi yardım edermisiniz okul projemde
ya bunu lcd ile de yapabilirmisiniz
bendede ilk 5 led sürekli yanıyor diğerleri yanmıyor, sorun ne olabilir?
hepsi yanıyor müzikle ritim tutmuyo bunu nasıl yapabilirim
Kablo bağlantınızda sorun olabilir. Tüm LED’lerin yanıyor olması bir yerde kısa devre olduğunu gösterir.
merhabalar bunun matlab kodlu olanını bulabilir miyiz ? teşekkürler
bende 3.5mm jack kisminda dört kablo var
yesil, mavi, beyaz kablonun üzerine sarilmis bakir kablo ve kirmizi
bunlaridan hangisini kullanmaliyim?
330 ohm direnç kullansak olmazmı
Kullanabilirsiniz, problem olmaz.
calıstı ama guc yeterlı degıl 4 tane led yanıyor
jakı taktıgımızda hem müzik sesi gelicek hemde ledler mi çalışacak yani ikisi de aynı anda mı yapacak işlevi