
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13


Üç düğmeli piyano, Arduino'yu kullanma deneyimi olan yeni başlayanlar için bir projedir.
Piezo buzzer ile ilk kez oynarken yanlışlıkla bunu yaratmaya çalışırken kendimi kaptırdım. Çok gürültülüydü! Buzzeri daha sessiz hale getirmek için çeşitli yöntemler bulmaya çalışırken ve tone() ve noTone() işlevini kullanarak farklı frekansları denerken, piezo buzzer'ı Arduino'mun diğer favori bileşenlerim ile birlikte denemenin ve karıştırmanın eğlenceli olabileceğini fark ettim. kit: düğmeler ve potansiyometre.
Gerekli malzemeler şunları içerir:
- 1 Arduino
- 1 ekmek tahtası
- 1 USB Kablosu
- Jumper Telleri (çeşitli renklerde)
- 1 330 Kilo-ohm Direnç
- 1 Piezo Zil
- 3 Basmalı Düğme
- 1 Potansiyometre
Adım 1: Piezo Buzzer

Başlamak için piezoyu Arduino'nun devre tahtasına kurun. Bir tarafının (daha kısa bacak tarafı) yere koşması gerekiyor. Diğer taraf (uzun bacak tarafı) bir dijital giriş pinine bağlanmalıdır. 8'e bağlamayı seçtim.
2. Adım: Düğmeler


Ardından, butonları ayarlamanın zamanı geldi. Piezo gibi, basma düğmelerinin toprağa ve bir dijital giriş pinine bağlanması gerekir.
Adım 3: Potansiyometre


Fiziksel yapının son adımı potansiyometredir. Potansiyometreler birkaç farklı biçimde gelir. Potansiyometreyi voltaj bölücü olarak kullanacağız, bu yüzden üç bacağının da bağlanması gerekiyor.
Sağ Ayak: Negatif Çubuk (Zemin)
Orta Ayak: Analog Pin 0
Sol Bacak: Pozitif Bar
Adım 4: Kodlayın
Bu proje için kod yazarken, birkaç özel işlev türüyle ilgili bilgilere başvurdum:
ton()
noTone() (Bunu kullanmadım. Bunun yerine frekansı "0" olarak ayarladım.)
harita()
Piezo Buzzers'ı ilk kez kullananlar için bir başka harika referans burada bulunabilir. Piezo buzzer'ın sesini değiştirme fikri basit görünse de, ilk başta biraz bunaltıcı olabilir!
tone() işlevi üç bölüme ayrılabilir:
- Pin (piezo buzzerin bağlı olduğu pin)
- Frekans (hertz cinsinden sesin frekansı)
- Süre (milisaniye cinsinden verilen sesin süresi)
Temel olarak şöyle görünür: ton(pin, frekans, süre). Üçüncü bileşen (süre) isteğe bağlıdır, diğer ikisi ise sesli uyarının çalışması için gereklidir. Ton işlevinin "frekans" bileşeni, buzzer tarafından üretilen "ses" olarak düşünülebilecek şeydir.
Ayrıca, kodun iki kod parçası daha içerdiğini fark edeceksiniz. Arduino'ya farklı düğmelere basıldığında ne yapacağını söylemek ve düğmelerden hiçbirine basılmadığı durumlarda "frekans = 0" ile ayarlamak için ayarlanmış bazı if/else ifadeleri vardır. if/else ifadelerinde, potansiyometrenin ölçeğini bir dizi frekansa eşlemek için map() işlevleri kullanılır. Bunlar değiştirilebilir! Piezodan hangi farklı sesleri alabileceğinizi görmek için farklı frekans değerleriyle oynayın.
Üç düğmeli piyanoyu oluşturmak için kullandığım kodu buradan veya aşağıdan kontrol edin.
int piezoPin = 8; // Piezo'ya bağlı pini ayarlayın.
int sensörPin = 0; //Sensöre (potansiyometre) bağlı pimi ayarlayın. int sensörDeğeri = 0;
int düğme1 = 5; //Butonlara bağlı giriş pinlerini ayarlayın.
int düğme2 = 4; int düğme3 = 3;
int frekans = 0;
const int gecikmeZamanı = 500; // tone() işlevinde gecikme süresi değişkeni için bir sabit ayarlayın.
geçersiz kurulum() {
pinMode(button1, INPUT_PULLUP); pinMode(button2, INPUT_PULLUP); pinMode(button3, INPUT_PULLUP); }
boşluk döngüsü () {
sensorValue = analogRead(sensorPin); // Sensörü oku. //Potansiyometrenin farklı değerlerini üç düğmenin her biri için bir dizi frekansla eşleştirin. if (digitalRead(button1) == LOW) { frekans = map(sensorValue, 0, 1023, 400, 499); } else if (digitalRead(button2) == LOW) { frekans = map(sensorValue, 0, 1023, 500, 599); } else if (digitalRead(button3) == LOW) { frekans = map(sensorValue, 0, 1023, 600, 699); } başka { frekans = 0; } ton(piezoPin, frekans, delayTime); // tone() fonksiyonlarını değişkenlerle ayarlayın. }
Önerilen:
İki Düğmeli Röle Anahtarı: 3 Adım

İki Düğmeli Röle Anahtarı: Bu makale, buton anahtarının nasıl AÇIK ve KAPALI konuma getirileceğini gösterir. Bu devre iki anahtarla yapılabilir. Bir düğmeye basarsınız ve ampul yanar. Başka bir düğmeye basarsınız ve ampul söner. Ancak bu İns
AÇMA-KAPAMA Düğmeli DIY Fan - M5StickC ESP32: 8 Adım

ON-OFF Düğmeli DIY Fan - M5StickC ESP32: Bu projede M5StickC ESP32 kartı kullanarak bir FAN L9110 modülünün nasıl kullanılacağını öğreneceğiz
Gerçek Düğmeli Flight Sim için Akrilik Tablet Standı: 4 Adım

Gerçek Düğmeli Uçuş Sim için Akrilik Tablet Standı: Bu, uçuş simülatörü yazılımı ile kullanım için bir tablet (örn. iPad) standıdır. Döner kodlayıcı modülleri ve bir Arduino Mega kullanarak, sim'deki belirli enstrüman işlevlerini kontrol etmek için fiziksel düğmelerin eşlenebileceği bir çözüm yarattım. olarak
Bir Analog Giriş Kullanan 4 Düğmeli Oyun: 6 Adım (Resimlerle)

Bir Analog Giriş Kullanan 4 Düğmeli Oyunlar: Bu talimat, birbirinden bağımsız olarak algılanabilen birden fazla düğme için bir analog giriş hattı kullanmaya odaklanır. Ve bu düğmelerin kullanımını vurgulamak için, dört farklı 4 Düğmeli oyun oynamak için bir yazılım bulunur. Tüm oyunlar (8 inç
2 Düğmeli İkinci Dereceden Denklem Çözücü: 5 Adım

2 Düğmeli İkinci Dereceden Denklem Çözücü: Giriş İlk öğreticime hoş geldiniz! Programlama bilgimi genişletmek için bu projeye başladım. Genellikle, ihtiyacınız olan programı oluşturmak için farklı kaynak kodlarını birleştirirsiniz. Amacım, bir araçla etkileşim için kendi program kodumu yazmaktı.