Herkese merhaba, bu yazımızda Arduino ile Piyano projesi yapacağız ve bu projeyi yapabilmek için ihtiyacımız olan malzemeler yalnızca alüminyum folyo, direnç ve jumper kablodur. Devre yapımına geçmeden önce size biraz CapacitiveSensor yöntemi ve kütüphanesi hakkında biraz bilgi vermek istiyorum.
Piyano Nasıl Çalışır?
Kapasitif Sensörün çalışma prensibi aslında Mikrodenetleyicinin sinyal gönderici pinini (Send Pin) yeni bir duruma (State) getirdikten sonra sinyal alıcı pininin (Recieve Pin) gönderici pin ile aynı durumda olmasını bekler. Gönderici pin durum değiştirdiğinde nihayetinde Alıcı pinin durumu da değişecektir. Gönderici ve Alıcı pinin gecikmesi (R*C)direncin değeri (R) ve Alıcı pin üzerindeki kapasitans değerinin (C) çarpımına eşittir.
Kuracağımız devrede sinyal gönderici pin ile alıcı pin arasında 100kΩ – 50MΩ aralığında direnç kullanarak hassasiyet ayarlanabilir. Bu hassasiyet işlemini kullanacağımız dirençlerin değerlerini değiştirerek yapabilir ve bu sayede dokunma yarım santimetre mesafeden bile algılanabilir. Fakat biz en tutarlı dokunma algılanması için 1MΩ’luk direnç kullanacağız.
Arduino ile Piyano Yapımı Malzemeler
- Arduino Nano
- 1MΩ Direnç (12 Adet)
- 9V’luk Pil
- Pil Başlığı
- Jumper Kablo
- Alüminyum Folyo (Bakır veya Alüminyum Bant)
Piyano Devre Şeması
Piyano Kütüphane Kurulumu
- Arduino IDE’yi açın ve üst menüden Sketch’e basın.
- Include Library üzerinden Manage Libraries seçeneğine tıklayın.
- Arama kutucuğuna pitches.h ve CapacitiveSensor.h yazarak kütüphanelerin en son sürümünü seçerek indirdikten sonra Arduino IDE’yi kapatıp tekrardan açın.
Arduino ile Piyano Yapımı Kodları
#include "pitches.h"
#include <CapacitiveSensor.h>
#define speaker 13
CapacitiveSensor cs_2_3 = CapacitiveSensor(2, 3);
CapacitiveSensor cs_2_4 = CapacitiveSensor(2, 4);
CapacitiveSensor cs_2_5 = CapacitiveSensor(2, 5);
CapacitiveSensor cs_2_6 = CapacitiveSensor(2, 6);
CapacitiveSensor cs_2_7 = CapacitiveSensor(2, 7);
CapacitiveSensor cs_2_8 = CapacitiveSensor(2, 8);
CapacitiveSensor cs_2_9 = CapacitiveSensor(2, 9);
CapacitiveSensor cs_2_10 = CapacitiveSensor(2, 10);
CapacitiveSensor cs_2_11 = CapacitiveSensor(2, 11);
CapacitiveSensor cs_2_12 = CapacitiveSensor(2, 12);
CapacitiveSensor cs_2_14 = CapacitiveSensor(2, 14);
CapacitiveSensor cs_2_15 = CapacitiveSensor(2, 15);
void setup()
{
Serial.begin(9600);
}
void loop()
{
long start = millis();
long total1 = cs_2_3.capacitiveSensor(30);
long total2 = cs_2_4.capacitiveSensor(30);
long total3 = cs_2_5.capacitiveSensor(30);
long total4 = cs_2_6.capacitiveSensor(30);
long total5 = cs_2_7.capacitiveSensor(30);
long total6 = cs_2_8.capacitiveSensor(30);
long total7 = cs_2_9.capacitiveSensor(30);
long total8 = cs_2_10.capacitiveSensor(30);
long total9 = cs_2_11.capacitiveSensor(30);
long total10 = cs_2_12.capacitiveSensor(30);
long total11 = cs_2_14.capacitiveSensor(30);
long total12 = cs_2_15.capacitiveSensor(30);
if (total1 > 500) tone(speaker, NOTE_C3);
else if (total2 > 500) tone(speaker, NOTE_CS3);
else if (total3 > 500) tone(speaker, NOTE_D3);
else if (total4 > 500) tone(speaker, NOTE_DS3);
else if (total5 > 500) tone(speaker, NOTE_E3);
else if (total6 > 500) tone(speaker, NOTE_F3);
else if (total7 > 500) tone(speaker, NOTE_FS3);
else if (total8 > 500) tone(speaker, NOTE_G3);
else if (total9 > 500) tone(speaker, NOTE_GS3);
else if (total10 > 500) tone(speaker, NOTE_A3);
else if (total11 > 500) tone(speaker, NOTE_AS3);
else if (total12 > 500) tone(speaker, NOTE_B3);
else
noTone(speaker);
delay(10);
}
Arduino ile Piyano Proje Videosu
Proje 3D tasarım STL dosyalarına ulaşmak için tıklayın.
Hemen sizde Arduino ile Piyano projemizi yapmak isterseniz gerekli olan Arduino Nano, 1MΩ Direnç, 9V’luk Pil, Pil Başlığı, Jumper Kablo malzemelerine web sitemizden kolaylıkla ulaşabilirsiniz. Bir sonraki yazımızda görüşmek üzere.