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

Arduino Uygulaması

Potansiyometre ile LED ve Buzzer Kontrolü

Potansiyometre, Seri Port Ekranı, PWM, analogRead, analogWrite ve map komutunu kullanarak LED parlaklığı veya buzzer çıkışı ayarlamayı öğreneceğiz.

Arduino potansiyometre uygulaması

Merhaba. Bu dersimizde Seri Port Ekranı’nı, potansiyometre ile LED parlaklığı ayarlamayı, buzzer çıkışı almayı ve map komutunu kullanmayı göreceğiz.

Serial Monitor, yani Seri Port Ekranı ile değişkenlerin anlık değerlerini program çalışırken görebiliriz.

Potansiyometre, en basit tanımıyla değişken ve ayarlanabilir dirençtir. Arduino’da genellikle analog girişten 0–1023 arasında değer okumak için kullanılır.

Buzzer, ses üretmek için kullanılan elektronik elemandır. Aktif buzzer sabit DC gerilimle ses verebilir. Pasif buzzer ise genellikle frekanslı sinyal, örneğin tone() veya PWM benzeri değişen sinyal gerektirir.

Bu uygulamada potansiyometre ile LED parlaklığını ayarlayacağız. Buzzer kullanacaksanız buzzer türüne göre bağlantı ve kod yaklaşımı değişebilir.

  • Arduino Uno
  • Breadboard
  • Potansiyometre
  • Direnç (220 Ω veya 330 Ω)
  • LED
  • Buzzer
  • Jumper kablo

Orijinal içerikte “Arduino Uno R2” yazıyor. Uygulama Arduino Uno R3 veya uyumlu Arduino Uno kartlarla da yapılabilir.

Önceki LED yakma derslerinde LED’i açık veya kapalı olacak şekilde kontrol etmiştik. Bunlar dijital çıkışlardır. LED parlaklığını artırmak veya azaltmak için Arduino’nun PWM destekli dijital pinlerinden yararlanırız.

Arduino Uno’da PWM destekli pinler yaklaşık işaretiyle gösterilir: 3, 5, 6, 9, 10 ve 11. Bu pinlerde analogWrite() komutu ile 0–255 arasında değer göndererek LED parlaklığını veya bazı çıkışların gücünü ayarlayabiliriz.

Burada önemli nokta şudur: Arduino Uno gerçek analog çıkış üretmez; PWM ile analog çıkışa benzer bir etki oluşturur.

İlk olarak potansiyometre ile LED parlaklığını ayarlayalım. Potansiyometreyi breadboard üzerine yerleştirelim. Kenardaki bacaklardan birini 5V’a, diğerini GND’ye bağlayalım. Orta bacak sinyal bacağıdır; bu bacağı Arduino’nun analog girişlerinden A0 pinine bağlayalım.

LED’i bağlamak için LED’in artı bacağını 220 Ω veya 330 Ω direnç üzerinden PWM destekli dijital pinlerden birine, örneğin 3 numaralı pine bağlayalım. LED’in eksi bacağını GND hattına bağlayalım.

LED yerine buzzer kullanacaksanız buzzerın + ve − ayaklarını doğru bağladığınızdan emin olun. Aktif buzzer ile analogWrite parlaklık gibi davranmayabilir; pasif buzzer için ses frekansı üretmekte tone() komutu daha doğru bir yaklaşımdır.

Arduino potansiyometre ile LED veya buzzer devresi

analogRead() komutu ile potansiyometreden 0–1023 arasında değer alırız. Bu değer potansiyometrenin çevrilmesiyle değişir. Değerleri anlık görmek için setup kısmına Serial.begin(9600);, loop kısmına ise Serial.println(deger); yazarız. println komutundaki “ln” kısmı veriyi yazdıktan sonra alt satıra geçilmesini sağlar. Sayıların çok hızlı akmasını istemiyorsak delay(100); ile kısa bir bekleme ekleyebiliriz.

#define led 3
#define pot A0

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

void loop() {
  int deger = analogRead(pot);
  Serial.println(deger);
  delay(100);
}

Kodları yazıp Arduino’ya yükledikten sonra, Araçlar menüsünden Seri Port Ekranı’nı açıyoruz. Potansiyometreyi çevirdikçe 0 ile 1023 arasında değerlerin ekranda değiştiğini görüyoruz.

Arduino Seri Port Ekranı

Şimdi LED parlaklığını ayarlamak için gerekli kodlarımızı ekleyelim. Potansiyometreden gelen değer 0–1023 aralığındadır. Ancak analogWrite komutu 0–255 aralığında değer bekler. Bu yüzden 0–1023 aralığını 0–255 aralığına dönüştürmek için map() komutunu kullanırız.

map komutunun kullanımı:

degisken = map(degisken, a, b, c, d);

Bu formülde a dönüştürmek istediğiniz değerin minimumunu, b maksimumunu, c yeni minimum değeri, d ise yeni maksimum değeri belirtir.

#define led 3
#define pot A0

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

void loop() {
  int deger = analogRead(pot);
  deger = map(deger, 0, 1023, 0, 255);

  Serial.println(deger);
  analogWrite(led, deger);

  delay(100);
}

analogRead için pinMode yazmamıza gerek yoktur. analogWrite kullanılan PWM pini için de çoğu temel uygulamada pinMode yazılmasa çalışır; ancak istenirse setup içinde pinMode(led, OUTPUT); eklemek kodu daha açık hale getirir.

Yorum Gönder

Daha yeni Daha eski