Arduino ile Basit Piyano Nasıl Yapılır? 2025 | Dokunmatik Müzik Enstrümanı Projesi
Arduino Basit Piyano Projesi Nedir?
Arduino ile basit piyano projesi, dokunmatik sensörler kullanarak gerçek piyano sesleri çıkaran interaktif müzik enstrümanı projesidir. Alüminyum folyo veya iletken malzemeler ile tuşlar oluşturarak, dokunma ile farklı notalar çalabilen eğlenceli bir elektronik müzik aleti yapabilirsiniz. Bu proje hem çocuklar hem de yetişkinler için harika bir STEM öğrenme deneyimi sunar.
Dokunmatik Piyano Çalışma Prensibi
Arduino dokunmatik piyano, kapasitif dokunma algılama teknolojisi kullanarak çalışır. İnsan vücudu doğal bir elektriksel iletken olduğu için, iletken malzemeye dokunduğunuzda elektriksel kapasitede değişiklik oluşur. Arduino bu değişikliği algılayarak ilgili nota sesini çalar.
🎵 Kapasitif Dokunma Teknolojisi:
- Elektriksel Kapasite: İnsan vücudu dielektrik
- Dokunma Algılama: Kapasitans değişimi
- Dijital Filtreleme: Gürültü temizleme
- Eşik Değeri: Dokunma hassasiyeti
🎹 Piyano Sistemi Bileşenleri:
- Arduino Uno: Ana işlem ünitesi
- Hoparlör/Buzzer: Ses çıkışı
- İletken Tuşlar: Alüminyum folyo
- Dokunma Sensörleri: Kapasitif algılama
- Amplifikatör: Ses güçlendirme (opsiyonel)
Arduino Basit Piyano Malzemeleri (2025 Güncel Liste)
📦 Temel Elektronik Bileşenler:
- Arduino Uno R3 – Ana mikrokontrolcü kartı (IOTURKS’te de kullanabilirsiniz)
- Hoparlör (8Ω 0.5W) – Ses çıkışı (buzzer da kullanabilir fakat ses kalitesi düşer)
- Alüminyum Folyo – Dokunmatik tuşlar (bakır vs. iletken malzeme alternatifi)
- 10 Adet Jumper Kablo – Bağlantı kabloları
- 10 Adet Krokodil Kablo – İletken bağlantı (isteğe bağlı)
🔧 Yardımcı Malzemeler:
- Breadboard – Devre montaj tahtası
- 220Ω Direnç – Hoparlör koruma direnci
- 10MΩ Dirençler (10 adet) – Pull-up dirençleri
- Kapasitörler (100nF) – Gürültü filtreleme
- Potansiyometre (10kΩ) – Ses seviyesi kontrolü
🎨 Yaratıcı Malzemeler:
- Karton/Ahşap Plaka – Piyano kasası
- Renkli Kağıtlar – Tuş etiketleri
- Çift Taraflı Bant – Folyo yapıştırma
- Marker/Kalem – Nota işaretleme
- Plastik Kutu – Elektronik koruması
🔊 Ses Kalitesi Geliştirmeleri:
- LM386 Amplifikatör – Ses güçlendirme
- 8Ω Hoparlör (2-5W) – Daha güçlü ses
- Audio Jack – Kulaklık çıkışı
- Volume Control – Ses seviyesi ayarı
- Bass/Treble Control – Ton kontrolü
Arduino Dokunmatik Piyano Devre Şeması
📺 Detaylı Çalışma Videosu:
👉 Arduino Basit Piyano Projesi – Video Rehber
Video içeriği: Kapasitif dokunma teorisi, alüminyum folyo tuş yapımı, nota frekansları programlama, ses kalitesi optimizasyonu ve yaratıcı kasa tasarımı
🔌 Arduino Bağlantı Şeması:
Dokunmatik Tuş Bağlantıları (8 Nota):
- Do (C4) → Arduino Pin 2 → 10MΩ → Alüminyum Folyo
- Re (D4) → Arduino Pin 3 → 10MΩ → Alüminyum Folyo
- Mi (E4) → Arduino Pin 4 → 10MΩ → Alüminyum Folyo
- Fa (F4) → Arduino Pin 5 → 10MΩ → Alüminyum Folyo
- Sol (G4) → Arduino Pin 6 → 10MΩ → Alüminyum Folyo
- La (A4) → Arduino Pin 7 → 10MΩ → Alüminyum Folyo
- Si (B4) → Arduino Pin 8 → 10MΩ → Alüminyum Folyo
- Do (C5) → Arduino Pin 9 → 10MΩ → Alüminyum Folyo
Hoparlör Bağlantısı:
- Hoparlör (+) → Arduino Pin 11 (PWM) → 220Ω Direnç
- Hoparlör (-) → Arduino GND
⚡ Güç ve Topraklama:
- Ortak Toprak → Tüm dirençlerin diğer ucu → Arduino GND
- Arduino VCC → 5V (USB veya harici güç)
Arduino Piyano Kodları
📚 Gerekli Kütüphaneler:
#include <CapacitiveSensor.h>
#include <pitches.h>
🔐 Premium Üyeler İçin Komple Kod Paketi:
[Üye Girişi Yaparak Tüm Kodlara Erişin]
Premium paket: Gelişmiş nota kütüphanesi, çoklu oktav desteği, ritim kayıt/oynatma, MIDI çıkışı, LCD ekran entegrasyonu, şarkı repertuarı
🎹 Temel Arduino Piyano Kodu:
#include <CapacitiveSensor.h>
// Nota frekansları (Hz)
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
// Hoparlör pin
#define SPEAKER_PIN 11
// Kapasitif sensörler (Send pin = 12, Receive pinleri)
CapacitiveSensor sensor1 = CapacitiveSensor(12, 2); // Do
CapacitiveSensor sensor2 = CapacitiveSensor(12, 3); // Re
CapacitiveSensor sensor3 = CapacitiveSensor(12, 4); // Mi
CapacitiveSensor sensor4 = CapacitiveSensor(12, 5); // Fa
CapacitiveSensor sensor5 = CapacitiveSensor(12, 6); // Sol
CapacitiveSensor sensor6 = CapacitiveSensor(12, 7); // La
CapacitiveSensor sensor7 = CapacitiveSensor(12, 8); // Si
CapacitiveSensor sensor8 = CapacitiveSensor(12, 9); // Do (yüksek)
// Dokunma eşik değeri
long touchThreshold = 1000;
// Nota dizisi
int notes[] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5};
String noteNames[] = {"Do", "Re", "Mi", "Fa", "Sol", "La", "Si", "Do"};
// Ses kontrolü değişkenleri
bool isPlaying = false;
unsigned long noteStartTime = 0;
int noteDuration = 200; // ms
int currentVolume = 128; // 0-255 PWM değeri
void setup() {
Serial.begin(9600);
pinMode(SPEAKER_PIN, OUTPUT);
// Kapasitif sensör ayarları
sensor1.set_CS_AutocaL_Millis(0xFFFFFFFF);
sensor2.set_CS_AutocaL_Millis(0xFFFFFFFF);
sensor3.set_CS_AutocaL_Millis(0xFFFFFFFF);
sensor4.set_CS_AutocaL_Millis(0xFFFFFFFF);
sensor5.set_CS_AutocaL_Millis(0xFFFFFFFF);
sensor6.set_CS_AutocaL_Millis(0xFFFFFFFF);
sensor7.set_CS_AutocaL_Millis(0xFFFFFFFF);
sensor8.set_CS_AutocaL_Millis(0xFFFFFFFF);
Serial.println("Arduino Dokunmatik Piyano Başlatıldı");
Serial.println("Tuşlara dokunarak nota çalabilirsiniz!");
// Başlangıç melodisi çal
playStartupMelody();
}
void loop() {
// Her sensörü kontrol et
checkTouchSensor(sensor1, 0, "Do");
checkTouchSensor(sensor2, 1, "Re");
checkTouchSensor(sensor3, 2, "Mi");
checkTouchSensor(sensor4, 3, "Fa");
checkTouchSensor(sensor5, 4, "Sol");
checkTouchSensor(sensor6, 5, "La");
checkTouchSensor(sensor7, 6, "Si");
checkTouchSensor(sensor8, 7, "Do");
// Nota süresi kontrolü
if (isPlaying && millis() - noteStartTime > noteDuration) {
stopNote();
}
delay(10); // CPU yükünü azalt
}
void checkTouchSensor(CapacitiveSensor &sensor, int noteIndex, String noteName) {
long sensorValue = sensor.capacitiveSensor(30);
if (sensorValue > touchThreshold) {
if (!isPlaying) {
playNote(notes[noteIndex], noteName);
}
// Debug için seri porta yazdır
Serial.print(noteName + " dokunuldu - Değer: ");
Serial.println(sensorValue);
}
}
void playNote(int frequency, String noteName) {
tone(SPEAKER_PIN, frequency);
isPlaying = true;
noteStartTime = millis();
Serial.println("Çalınan nota: " + noteName + " (" + String(frequency) + " Hz)");
}
void stopNote() {
noTone(SPEAKER_PIN);
isPlaying = false;
}
void playStartupMelody() {
// "Do Re Mi Fa Sol La Si Do" başlangıç melodisi
for (int i = 0; i < 8; i++) {
tone(SPEAKER_PIN, notes[i]);
delay(300);
noTone(SPEAKER_PIN);
delay(50);
}
Serial.println("Başlangıç melodisi tamamlandı");
}
// Gelişmiş fonksiyonlar
void playChord(int note1, int note2, int note3) {
// Akor çalma (çoklu nota - gelişmiş versiyon için)
// Not: Arduino Uno tek ton() destekler, çoklu ton için özel kütüphane gerekli
}
void adjustVolume(int volume) {
// Ses seviyesi ayarlama (0-255)
currentVolume = constrain(volume, 0, 255);
analogWrite(SPEAKER_PIN, currentVolume);
}
void changeBPM(int bpm) {
// Tempo ayarlama
noteDuration = 60000 / bpm; // 60 saniye / BPM
}
void playMelody(int melody[], int durations[], int length) {
for (int i = 0; i < length; i++) {
int noteDur = 1000 / durations[i];
tone(SPEAKER_PIN, melody[i], noteDur);
int pauseBetweenNotes = noteDur * 1.30;
delay(pauseBetweenNotes);
noTone(SPEAKER_PIN);
}
}
// Örnek şarkı: "Twinkle Twinkle Little Star"
void playTwinkleTwinkle() {
int melody[] = {
NOTE_C4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4,
NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4
};
int noteDurations[] = {
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2
};
playMelody(melody, noteDurations, 14);
}
// Kalibrasyon fonksiyonu
void calibrateSensors() {
Serial.println("Sensör kalibrasyonu başlatılıyor...");
Serial.println("10 saniye boyunca tuşlara dokunmayın!");
delay(2000);
long baseline = 0;
for (int i = 0; i < 100; i++) {
baseline += sensor1.capacitiveSensor(30);
delay(10);
}
baseline /= 100;
touchThreshold = baseline + 500; // Baseline + güvenlik marjı
Serial.println("Kalibrasyon tamamlandı - Eşik değeri: " + String(touchThreshold));
}
Nota Frekansları ve Müzik Teorisi
🎵 Temel Nota Frekansları (4. Oktav):
| Nota | Frekans (Hz) | Dalga Boyu |
|---|---|---|
| Do (C4) | 261.63 | 131.87 cm |
| Re (D4) | 293.66 | 117.48 cm |
| Mi (E4) | 329.63 | 104.66 cm |
| Fa (F4) | 349.23 | 98.79 cm |
| Sol (G4) | 392.00 | 88.01 cm |
| La (A4) | 440.00 | 78.41 cm |
| Si (B4) | 493.88 | 69.85 cm |
| Do (C5) | 523.25 | 65.93 cm |
🎼 Müzik Teorisi Temelleri:
- Oktav: Frekansın 2 katı (C4=262Hz, C5=524Hz)
- Yarım Ton: En küçük müzik aralığı
- Tam Ton: 2 yarım ton = Major 2nd
- Temperament: Eşit bölünmüş oktav sistemi
Kapasitif Dokunma Sensör Teorisi
⚡ Kapasitans Formülü:
C = ε₀ × εᵣ × A / d
C: Kapasitans (Farad)
ε₀: Vakum geçirgenliği
εᵣ: Göreceli dielektrik sabiti
A: Plaka alanı
d: Plakalar arası mesafe
📊 Dokunma Algılama Mekanizması:
- Baseline Measurement: Dokunmasız referans değer
- Touch Detection: Kapasitans artışı algılama
- Threshold Setting: Eşik değeri belirleme
- Noise Filtering: Gürültü filtreleme
- Debouncing: Titreşim önleme
Arduino Piyano Avantajları
🎯 Eğitim Avantajları:
- STEM Öğrenimi: Bilim, teknoloji, mühendislik, matematik
- Müzik Eğitimi: Nota öğrenme, ritim geliştirme
- Elektronik Kavramlar: Kapasitans, frekans, dalga
- Programlama: C++ kodlama deneyimi
💡 Yaratıcılık Geliştirme:
- DIY Yaklaşım: Kendi enstrümanını yapma
- Kişiselleştirme: Farklı malzemeler deneme
- Sanat Entegrasyonu: Görsel tasarım ekleme
- Müzik Kompozisyonu: Kendi melodileri yaratma
🔧 Teknik Beceriler:
- Devre Kurma: Elektronik bağlantılar
- Sorun Giderme: Debug teknikleri
- Optimizasyon: Kod ve devre iyileştirme
- Proje Yönetimi: Planlama ve uygulama
Alüminyum Folyo Tuş Yapımı
📐 Tuş Tasarım Kriterleri:
- Boyut: 5cm x 8cm optimal tuş boyutu
- Kalınlık: Çift kat folyo daha iyi iletkenlik
- Mesafe: Tuşlar arası 1cm boşluk
- Şekil: Piyano tuşu benzeri dikdörtgen
- Bağlantı: Folyo altına krokodil kablo
🎨 Yaratıcı Tuş Alternatifleri:
- Bakır Bant: Daha dayanıklı iletken
- İletken Kumaş: Esnek dokunmatik yüzey
- Metal Plakalar: Paslanmaz çelik alternatifi
- Graphite Kağıt: Kalem ile boyama
- İletken Boya: Özel kapasitif boyalar
Arduino Piyano Kurulumu ve Kalibrasyon
🔧 Donanım Kurulumu:
- Arduino Bağlantısı: Pin mapping kontrolü
- Folyo Yerleştirme: Düzgün yüzey hazırlama
- Kablo Bağlantısı: Güvenli elektriksel temas
- Hoparlör Montajı: Rezonans kutusu ekleme
- Kasa Tasarımı: Estetik ve fonksiyonel muhafaza
⚙️ Yazılım Kalibrasyonu:
- Baseline Ölçümü: Dokunmasız referans değer
- Threshold Ayarı: Hassasiyet optimizasyonu
- Gürültü Filtreleme: Kararlı algılama
- Debounce Süresi: Çift tetikleme önleme
- Nota Süresi: Optimal çalma süresi
Arduino Piyano Sorun Giderme
⚠️ Yaygın Problemler:
Tuşlar Hassas Değil:
- Threshold Değeri: Eşik değerini düşürün
- Folyo Kalitesi: Daha kalın folyo kullanın
- Bağlantı: Kablo temasını kontrol edin
- Toprakama: Ortak GND bağlantısı
Sürekli Tetikleme:
- Gürültü: Elektromanyetik girişim
- Threshold Yüksek: Eşik değerini artırın
- Kablo Uzunluğu: Kısa kablo kullanın
- Filtreleme: Kapasitör ekleme
Ses Kalitesi Düşük:
- Hoparlör: Buzzer yerine speaker kullanın
- Amplifikatör: LM386 ses güçlendirici
- Rezonans: Ses kutusu ekleme
- PWM Frekansı: Ses kalitesi optimizasyonu
İleri Seviye Piyano Özellikleri
🎹 Çoklu Oktav Desteği:
// 3 oktav nota tanımları
int octave3[] = {131, 147, 165, 175, 196, 220, 247, 262};
int octave4[] = {262, 294, 330, 349, 392, 440, 494, 523};
int octave5[] = {523, 587, 659, 698, 784, 880, 988, 1047};
🎵 Ritim ve Tempo Kontrolü:
- BPM Ayarı: Beats per minute kontrolü
- Metronom: Ritim rehberi
- Quantization: Nota süresi standardizasyonu
- Swing Feel: Jazz ritim hissi
🔊 Ses Efektleri:
- Reverb: Yankı efekti (yazılımsal)
- Vibrato: Titreşim efekti
- Sustain: Nota uzatma
- Attack/Decay: Ses zarfı kontrolü
Arduino Piyano vs Diğer DIY Enstrümanlar
| Özellik | Arduino Piyano | Theremin | MIDI Controller | Drum Kit |
|---|---|---|---|---|
| Zorluk | Kolay | Orta | Zor | Orta |
| Maliyet | 50-100 TL | 80-150 TL | 200-500 TL | 150-300 TL |
| Ses Kalitesi | Orta | İyi | Çok İyi | İyi |
| Öğrenme | Yüksek | Orta | Yüksek | Orta |
| Genişletilebilir | ✅ | ❌ | ✅ | ✅ |
| Taşınabilir | ✅ | ❌ | ✅ | ❌ |
Arduino Basit Piyano Maliyet Analizi 2025
| Malzeme | Ortalama Fiyat (TL) |
|---|---|
| Arduino Uno R3 | 45-60 |
| Hoparlör (8Ω 0.5W) | 8-15 |
| Alüminyum Folyo | 5-10 |
| 10 Adet Jumper Kablo | 5-8 |
| 10 Adet Krokodil Kablo | 8-15 |
| 10MΩ Dirençler (10 adet) | 3-5 |
| Breadboard | 8-12 |
| Karton/Ahşap Kasa | 10-20 |
| Diğer Malzemeler | 8-15 |
| Toplam | 100-160 TL |
Yaratıcı Geliştirme Fikirleri
🎨 Görsel Geliştirmeler:
- LED Işıklar: Nota başına renkli LED
- LCD Ekran: Çalınan nota gösterimi
- RGB Strip: Müzik reaktif ışıklar
- OLED Display: Nota portesi gösterimi
🔊 Ses Geliştirmeleri:
- Çoklu Tını: Piyano, org, gitar sesleri
- Harmonik: Akor çalma desteği
- Arpej: Otomatik arpej modları
- Accompaniment: Eşlik ritimleri
🌐 Bağlantı Özellikleri:
- Bluetooth: Kablosuz ses aktarımı
- MIDI Out: Profesyonel müzik yazılımı
- Recording: Performans kaydetme
- Playback: Kaydedilen müzik oynatma
Eğitim ve Öğretim Uygulamaları
🎓 Okul Projeleri:
- Fen Bilgisi: Ses ve titreşim konuları
- Matematik: Frekans ve oran hesaplamaları
- Müzik Dersi: Nota öğretimi
- Teknoloji: Arduino programlama
👨🏫 Öğretmen Rehberi:
- Ders Planı: 4 haftalık proje programı
- Öğrenme Hedefleri: Teknik ve sanatsal beceriler
- Değerlendirme: Proje rubric’i
- Genişletme: İleri seviye aktiviteler
Sonuç
Arduino ile basit piyano projesi, elektronik, programlama ve müziğin mükemmel birleşimini sunan eğlenceli ve öğretici bir STEM projesidir. Bu proje ile kapasitif dokunma teknolojisi, ses üretimi ve müzik teorisi konularında praktik deneyim kazanabilirsiniz. Hem çocuklar hem de yetişkinler için yaratıcılığı geliştiren harika bir elektronik müzik projesidir.
Önemli Notlar:
- Kapasitif sensörler nem ve sıcaklıktan etkilenebilir
- Ses kalitesi için hoparlör buzzer’dan daha iyidir
- Folyo kalınlığı dokunma hassasiyetini etkiler
- Kalibrasyon her kurulumda gereklidir
- 📺 Gerekli tüm bilgiler videoda detaylı anlatılmıştır
- ⚠️ Lütfen öncelikle videoyu dikkatlice izleyiniz
🎥 Video Rehber İçeriği:
- Arduino Uno kapasitif dokunma teorisi
- Alüminyum folyo tuş yapım teknikleri
- CapacitiveSensor kütüphanesi kullanımı
- Nota frekansları ve müzik teorisi temelleri
- Hoparlör bağlantısı ve ses optimizasyonu
- Kalibrasyon süreçleri ve hassasiyet ayarları
- Yaratıcı kasa tasarımı ve montaj
- Sorun giderme ve performans artırma
- İleri seviye özellikler ve geliştirmeler
- Eğitim uygulamaları ve öğretim teknikleri
Anahtar Kelimeler: Arduino basit piyano, dokunmatik piyano projesi, kapasitif dokunma sensörü, Arduino müzik enstrümanı, alüminyum folyo piyano, CapacitiveSensor Arduino, DIY elektronik piyano, Arduino ses projesi, STEM müzik projesi, Arduino nota çalma
Devre Şeması
Çalışma Videosu
Premium Üyeler İçin Gerekli Kodlar:
Not: Gerekli Tüm Bilgileri Video da Verdim. Lütfen İlk Önce Videoyu Dikkatlice İzleyiniz…












Leave a Reply