Arduino ile Piyano Yapımı

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.

Arduino ile Piano Projesi!
Arduino ile Piyano Projesi!

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.

Piano Kapasitans
Pin Bağlantıları

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

Piyano Devre Şeması

Piano Devre Şeması
Devre Şeması

Piyano Kütüphane Kurulumu

  1. Arduino IDE’yi açın ve üst menüden Sketch’e basın.
  2. Include Library üzerinden Manage Libraries seçeneğine tıklayın.
  3. 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 Nano1MΩ 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.

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top