Arduino Potansiyometre ile Buzzer Ses Kontrolü

Bu projede, Arduino kullanarak bir potansiyometre ile buzzerın ses şiddetini nasıl kontrol edeceğimizi öğreneceğiz. Potansiyometre, döndürülebilen bir ayar elemanıdır ve direnç değerini değiştirerek Arduino’ya analog sinyal gönderir. Bu sinyali kullanarak buzzerın çıkardığı sesin frekansını ve şiddetini ayarlayacağız.

Proje Hedefleri:
✔ Potansiyometreden analog değer okuma
✔ Okunan değeri buzzer frekansına dönüştürme
✔ Ses şiddetini ayarlayabilme
✔ Seri port üzerinden değerleri izleme


1. Gerekli Malzemeler

MalzemeAdetAçıklama
Arduino Uno1Mikrodenetleyici kartı
Potansiyometre (10kΩ)1Direnç ayarı yapmak için
Buzzer (Pasif)1Ses çıkış elemanı
Breadboard1Devre kurulumu için
Jumper Kablolar5-6Bağlantı için

2. Devre Bağlantı Şeması

Bağlantı Adımları:

  1. Potansiyometre:
    • Orta ucu (wiper) → A0 pinine
    • Diğer uçlardan biri → 5V‘a
    • Diğer uç → GND‘ye
  2. Buzzer:
    • (+) ucu → D9 pinine (PWM çıkışı)
    • (-) ucu → GND‘ye

3. Arduino Kodu ve Açıklamalar.

int buzzer = 6;
int pot = A5;
int potDeger = 0;

void setup() {
  pinMode(buzzer, OUTPUT);  // Buzzer pinini çıkış olarak ayarla
}

void loop() {
  potDeger = analogRead(pot);  // Potansiyometreden değeri oku
  potDeger = map(potDeger, 0, 1023, 100, 1000);  // Potansiyometreyi 100-1000 Hz arasında ölçeklendir

  tone(buzzer, potDeger);  // Buzzer'a frekans gönder
  delay(10);  // Küçük bir gecikme
}

Kod Açıklamaları:

  • analogRead(potPin): Potansiyometreden 0-1023 arası değer okur.
  • map(): Okunan değeri 50-2000 Hz aralığına ölçeklendirir.
  • tone(): Buzzerı belirtilen frekansta çalıştırır (PWM sinyali gönderir).
  • Serial.print(): Değerleri bilgisayara yazdırır (monitörden izlemek için).

4. Çalışma Prensibi

  1. Potansiyometre döndürüldüğünde, Arduino’ya analog sinyal gönderir.
  2. Arduino bu sinyali 0-1023 arasında dijital değere çevirir.
  3. map() fonksiyonu ile bu değer 50-2000 Hz aralığına dönüştürülür.
  4. tone() fonksiyonu, buzzerı bu frekansta çalıştırır.
  5. Potansiyometreyi çevirdikçe sesin perdesi değişir.

5. Proje Geliştirme Önerileri

A. LED Ekleyerek Görsel Feedback

  • Potansiyometre değerine göre bir LED’in parlaklığını ayarlayabilirsiniz:
const int ledPin = 3; // PWM pin
analogWrite(ledPin, potValue / 4); // 0-255 aralığına ölçekle

B. Farklı Ses Efektleri

  • Belirli değer aralıklarında özel melodiler çaldırabilirsiniz:
if (potValue > 800) {
  tone(buzzerPin, 1000, 500); // Yüksek değerde bip sesi
}

C. Seri Porttan Kontrol

  • Bilgisayardan girilen frekans değerlerine göre buzzerı kontrol edebilirsiniz.

6. Sık Karşılaşılan Sorunlar ve Çözümler

SorunÇözüm
Buzzer ses çıkarmıyorBağlantıları kontrol edin, PWM pin kullandığınızdan emin olun
Ses çok zayıfPasif buzzer kullandığınıza emin olun (aktif buzzer ton kontrolüne izin vermez)
Potansiyometre değerleri dalgalanıyordelay(10) ekleyin veya bir filtreleme algoritması kullanın

Sonuç

Bu projede:
✔ Potansiyometre ile analog veri okumayı
✔ Okunan değeri buzzer frekansına dönüştürmeyi
✔ PWM kullanarak ses kontrolünü öğrendik.

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments