İki tuşlu mini piyano
İki girişe farklı frekans ata; tuş yoksa sesi durdur.
9+ yaş · 35 dakika ·
İnteraktif atölyede aç →Neler öğreneceğiz?
İki girişe farklı frekans ata; tuş yoksa sesi durdur.
INPUT_PULLUP dahili direnci kullanır. Buton basılıyken LOW okunur. click() 30 ms kararlı değişim bekleyerek mekanik sıçramayı süzer. Dört ayaklı butonda aynı tarafta zaten bağlı ayakları karıştırma.
İkinci buton da aktif LOW çalışır. Birinci buton D2, ikinci D3 üzerindedir.
Pasif piezo tone() ile sürülür. Aktif buzzer farklı davranır. Düşük ses düzeyiyle çalış; kulağa yaklaştırma. Uno tone() kullanırken D3/D11 PWM etkilenebilir.
Malzeme listesi
- 1 × Arduino Uno R3
- 1 × USB veri kablosu
- 1 × breadboard
- Yeterli sayıda jumper kablo
- 1 × basmalı buton
- 1 × ikinci basmalı buton
- 1 × düşük akımlı pasif piezo buzzer
- 1 × 100 Ω seri direnç
Bağlantı tablosu
| Başlangıç | Bağlantı |
|---|---|
| D2 | Butonun bir kontağı |
| Buton karşı kontağı | GND |
| D3 | İkinci buton kontağı |
| İkinci buton karşı kontağı | GND |
| D4 | 100 Ω → pasif piezo + |
| Pasif piezo − | GND |
Adım adım yapalım
- Önce bağlantı görselini ve malzeme listesini oku. 6–8 yaş grubunda bir yetişkin devreyi kurarken çocuk komutları ve sonucu takip eder.
- USB ve harici beslemeyi çıkar. Breadboard güç raylarının bağlı/ayrık bölümlerini kontrol et.
- D2 ucunu Butonun bir kontağı noktasına bağla.
- Buton karşı kontağı ucunu GND noktasına bağla.
- D3 ucunu İkinci buton kontağı noktasına bağla.
- İkinci buton karşı kontağı ucunu GND noktasına bağla.
- D4 ucunu 100 Ω → pasif piezo + noktasına bağla.
- Pasif piezo − ucunu GND noktasına bağla.
- Bir yetişkinle güç, GND, parça yönü ve dirençleri bağlantı tablosuna göre tek tek kontrol et.
- Arduino IDE’de Arduino Uno kartını ve bağlı portu seç. Servo veya LCD kullanılan projelerde ilgili Servo/LiquidCrystal kütüphanesini kur.
- Aşağıdaki bağımsız kodu yeni eskize yapıştır ve karta yükle. Seri Monitör gerekiyorsa 9600 baud seç.
- Beklenen sonucu gözle, ardından yalnız bir değişkeni değiştirerek “Sıra sende” görevini yap.
Kod · Arduino C++
// Arduino Uno R3 — İki tuşlu mini piyano
bool pressed(){return digitalRead(2)==LOW;}
bool click(){static bool lastRaw=false,stable=false;static unsigned long changed=0;bool raw=pressed();if(raw!=lastRaw){lastRaw=raw;changed=millis();}if(millis()-changed>=30 && stable!=raw){stable=raw;return stable;}return false;}
bool pressed2(){return digitalRead(3)==LOW;}
void beep(int hz,int ms){tone(4,hz,ms);delay(ms);noTone(4);}
void setup(){
Serial.begin(9600);
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
pinMode(4,OUTPUT);
}
void loop(){
if(pressed())tone(4,262);else if(pressed2())tone(4,330);else noTone(4);
}
Kod nasıl çalışır?
İki girişe farklı frekans ata; tuş yoksa sesi durdur.
setup() bir kez çalışıp pin yönlerini ve haberleşmeyi hazırlar. loop() içindeki komutlar sürekli tekrarlanır. INPUT_PULLUP dahili direnci kullanır. Buton basılıyken LOW okunur. click() 30 ms kararlı değişim bekleyerek mekanik sıçramayı süzer. Dört ayaklı butonda aynı tarafta zaten bağlı ayakları karıştırma.
İkinci buton da aktif LOW çalışır. Birinci buton D2, ikinci D3 üzerindedir.
Pasif piezo tone() ile sürülür. Aktif buzzer farklı davranır. Düşük ses düzeyiyle çalış; kulağa yaklaştırma. Uno tone() kullanırken D3/D11 PWM etkilenebilir.
Beklenen sonuç
Birinci buton do, ikinci buton mi notasına yakın ses verir.
Sıra sende
İki butona birlikte basıldığında üçüncü nota çal.
Güvenli atölye
Yalnız düşük gerilimli eğitim devresi. Şebeke/priz bağlantısı yapma. Bağlantıları enerji kapalıyken ve bir yetişkinle kur. Motor/servo hareket alanını boş tut. Bu proje fiziksel devrede test edilmiş olarak işaretlenmemiştir.
Çalışmıyorsa kontrol et
- Kod yüklenmiyorsa kart, port ve USB veri kablosunu kontrol et.
- Gücü çıkarıp her bağlantıyı tablodaki satırla eşleştir; ortak GND olmadan sinyaller güvenilir olmayabilir.
- Beklenen sonuçla gerçek sonucu karşılaştır. Sensör eşikleri bulunduğun ortama göre ayar ister.
- LED yanmıyorsa seri direnci ve anot/katot yönünü kontrol et; LED içermeyen projede sensörün pin etiketlerini incele.