Arduino Ders 5: Potansiyometre İle Led veya Buzzer Kullanımı

Arduino Etkinliği · Analog Giriş ve PWM

Potansiyometre ile LED ve Buzzer Kontrolü

Potansiyometreden analog değer okuyarak LED parlaklığını PWM ile ayarlayacağız. Ardından aynı analog değeri kullanarak pasif buzzer frekansını tone() ile değiştireceğiz. Bu etkinlikte analogRead(), analogWrite(), map(), Serial Monitor ve tone() kullanımını birlikte öğreneceğiz.

Arduino potansiyometre ile LED ve buzzer kontrolü
SeviyeBaşlangıç
Öğrenilecek KonuAnalog giriş, PWM ve map()
DevrePotansiyometre + LED / pasif buzzer
01

Gerekli Malzemeler

İki küçük uygulama için temel parçalar.

  • 1 adet Arduino Uno R3 veya uyumlu kart
  • 1 adet breadboard
  • 1 adet 10 kΩ potansiyometre
  • 1 adet LED
  • 1 adet 220 Ω veya 330 Ω direnç
  • 1 adet pasif buzzer
  • Jumper kablolar
  • USB veri kablosu

Öneri: İlk kez uyguluyorsanız önce yalnızca potansiyometre + LED devresini tamamlayın. LED kısmı çalıştıktan sonra pasif buzzer örneğine geçmek konuyu daha kolay anlamanızı sağlar.

02

Potansiyometre Nasıl Çalışır?

Bu devrede gerilim bölücü olarak kullanacağız.

Potansiyometre üç bacaklı ayarlanabilir bir elemandır. Arduino uygulamalarında çoğunlukla gerilim bölücü olarak kullanılır. Bir dış bacak 5V'a, diğer dış bacak GND'ye bağlanır; ortadaki hareketli uçtan alınan gerilim ise potansiyometrenin konumuna göre değişir.

Ortadaki bacağı A0 analog girişine bağladığımızda Arduino Uno R3 bu gerilimi klasik kullanımda 0 ile 1023 arasında sayısal bir değere dönüştürür.

Dış bacak 15V hattına bağlanır.
Dış bacak 2GND hattına bağlanır.
Orta bacakA0 analog girişine bağlanır.
analogRead()Uno R3'te tipik olarak 0–1023 arasında değer üretir.
03

PWM ve Analog Çıkış Mantığı

LED parlaklığını nasıl değiştireceğiz?

Arduino Uno R3 üzerinde D3, D5, D6, D9, D10 ve D11 pinleri PWM desteklidir. Bu pinlerde analogWrite() ile 0–255 arasında bir değer kullanarak LED parlaklığı gibi çıkışları kontrol edebiliriz.

PWM gerçek bir analog gerilim değildir. Pin çok hızlı biçimde HIGH ve LOW arasında anahtarlanır. HIGH kalma süresinin oranı değiştirilerek LED'in ortalama parlaklığı değişiyormuş gibi görünür.

Kart farklarına dikkat: Bu dersteki 0–1023 analog giriş ve 0–255 PWM değerleri klasik Arduino Uno R3 için anlatılmıştır. Daha yeni Arduino kartlarında ADC veya PWM çözünürlüğü farklı olabilir.

04

Devre Bağlantısı

Potansiyometreyi A0'a, LED'i D3'e bağlayalım.

Potansiyometrenin dış bacaklarından birini 5V, diğerini GND hattına bağlayın. Orta bacağı A0 pinine bağlayın. Dış bacakların yerini değiştirirseniz yalnızca çevirdiğiniz yön ile değerin artış yönü tersine döner.

LED'in anot (uzun) bacağını 220 Ω veya 330 Ω seri direnç üzerinden D3 pinine, katot (kısa) bacağını ise GND'ye bağlayın.

Arduino potansiyometre LED bağlantısı

Dikkat: LED'i seri direnç olmadan doğrudan Arduino pinine bağlamayın. Arduino Uno Rev3'te dijital I/O pini için önerilen akım 20 mA'dır.

05

Serial Monitor ile Değer Okuma

Önce sensör değerini gözlemleyelim.

Potansiyometreyi çevirdiğimizde A0 pininden okunan değerin değiştiğini önce Serial Monitor'de görelim. Böylece devre bağlantımızın doğru olup olmadığını da kolayca kontrol edebiliriz.

Analog değer okumaArduino / C++
const byte potPin = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int potValue = analogRead(potPin);

  Serial.println(potValue);
  delay(100);
}

Analog giriş için ayrıca pinMode(A0, INPUT) yazmak gerekmez. Arduino IDE 2'de Serial Monitor'ü açtığınızda potansiyometreyi çevirdikçe değerin yaklaşık 0–1023 arasında değiştiğini görebilirsiniz.

Arduino Serial Monitor potansiyometre değerleri
06

Potansiyometre ile LED Parlaklığı

0–1023 değerini 0–255 PWM aralığına çevirelim.

Potansiyometreden okunan değer 0–1023 aralığındadır. LED için kullanacağımız PWM değeri ise 0–255 aralığındadır. Bu iki aralık arasında dönüşüm yapmak için map() fonksiyonunu kullanabiliriz.

LED parlaklık kontrolüArduino / C++
const byte potPin = A0;
const byte ledPin = 3;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int potValue = analogRead(potPin);
  int brightness = map(potValue, 0, 1023, 0, 255);

  analogWrite(ledPin, brightness);

  Serial.print("Pot: ");
  Serial.print(potValue);
  Serial.print("  PWM: ");
  Serial.println(brightness);

  delay(20);
}
analogRead()A0 pininden 0–1023 arası analog değeri okur.
map()Okunan değeri 0–255 aralığına ölçekler.
analogWrite()D3 pinindeki PWM görev döngüsünü değiştirir.
brightnessLED parlaklığı için kullanılan PWM değeridir.

Önemli: map() değeri otomatik olarak sınırlandırmaz. Bu devrede potansiyometre beklenen 0–1023 aralığında çalıştığı için sorun olmaz; başka uygulamalarda gerekirse sonucu constrain() ile sınırlandırabilirsiniz.

07

Pasif Buzzer Frekans Kontrolü

Potansiyometre ile ses perdesini değiştirelim.

Pasif buzzer kullanıyorsanız potansiyometre değerini doğrudan PWM parlaklığı gibi düşünmek yerine frekans değerine dönüştürmek daha doğru bir yaklaşımdır. Bunun için Arduino'nun tone() fonksiyonunu kullanabiliriz.

Buzzer'ın sinyal ucunu örneğin D8 pinine bağlayın. tone() kullanmak için pinin PWM işaretli olması gerekmez.

Pasif buzzer frekans kontrolüArduino / C++
const byte potPin = A0;
const byte buzzerPin = 8;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int potValue = analogRead(potPin);
  int frequency = map(potValue, 0, 1023, 200, 2000);

  tone(buzzerPin, frequency);

  Serial.print("Pot: ");
  Serial.print(potValue);
  Serial.print("  Frekans: ");
  Serial.println(frequency);

  delay(20);
}

Aktif ve pasif buzzer aynı değildir. Aktif buzzer kendi osilatörünü içerdiği için sabit gerilimle ses verebilir. Frekansı programla değiştirmek istediğiniz uygulamalarda pasif buzzer daha uygundur.

08

Kodu Nasıl Okumalıyız?

Dersin temel komutlarını özetleyelim.

analogRead()Analog girişteki gerilimi sayısal değere dönüştürür.
map()Bir sayı aralığını başka bir sayı aralığına ölçekler.
analogWrite()Desteklenen pinlerde PWM çıkışı üretir.
tone()Belirtilen frekansta kare dalga üretir.
Serial.print()Değerleri bilgisayarda gözlemlemeyi sağlar.
delay()Program akışını belirtilen milisaniye kadar bekletir.
09

Sık Yapılan Hatalar

Devre çalışmıyorsa önce bunları kontrol edin.

  • Potansiyometrenin orta bacağını A0 yerine yanlış pine bağlamak
  • 5V ve GND bağlantılarını karıştırmak
  • LED'i seri direnç olmadan kullanmak
  • LED'i PWM desteklemeyen bir pine bağlayıp parlaklık kontrolü beklemek
  • Aktif buzzer ile pasif buzzer davranışını aynı sanmak
  • Serial Monitor baud hızını kodla eşleştirmemek
  • Koddaki pinlerle devredeki pinlerin farklı olması
  • Başka kartlarda Uno R3'ün ADC/PWM aralıklarını aynen varsaymak
10

Mini Görevler

Öğrendiğin kodu değiştirerek dene.

  • Potansiyometre arttıkça LED'in sönmesini sağlayacak şekilde değeri ters çevir.
  • LED'in PWM aralığını 50–200 ile sınırlandır.
  • Serial Monitor'e potansiyometre değerini yüzde olarak yazdır.
  • Pasif buzzer frekansını 262–1047 Hz aralığına ölçekle.
  • LED parlaklığı ve buzzer frekansını aynı potansiyometre ile birlikte kontrol et.
  • İkinci bir LED ekleyip birinin parlaklığı artarken diğerinin azalmasını sağla.
11

Resmî Kaynaklar

Konuyu daha ileri taşımak için.

Yorum Gönder

Daha yeni Daha eski