Video: Arduino - Piezo Üç Düğmeli Piyano: 4 Adım
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Üç 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. }