Potansiyometre ile LED Parlaklığı: Analog Giriş ve PWM

Düğmeyi çevirdikçe LED yavaşça parlasın. Analog giriş okumayı, map() fonksiyonuyla değer dönüştürmeyi ve PWM ile parlaklık ayarlamayı öğrenin.

Potansiyometre ile LED Parlaklığı: Analog Giriş ve PWM

Dijitalden analoğa

Buton sadece iki durum bilir: basılı ya da değil. Ama gerçek dünyada pek çok şey kademelidir: sesin yüksekliği, ışığın parlaklığı, sıcaklık... Bu tür değerleri okumak için analog girişler kullanılır.

Potansiyometre

Potansiyometre, çevrilebilen bir dirençtir. Radyonun ses düğmesini düşünün. Arduino onu analogRead() ile 0 ile 1023 arasında bir sayı olarak okur.

PWM: yarı yanık LED mümkün mü?

Arduino'nun dijital pinleri sadece açık ya da kapalı olabilir. PWM yöntemi, LED'i saniyede yüzlerce kez çok hızlı yakıp söndürür. Gözümüz bunu fark edemez ve LED'i daha sönük görür. UNO'da PWM destekleyen pinler 3, 5, 6, 9, 10 ve 11'dir (yanlarında ~ işareti vardır). analogWrite() 0 ile 255 arası değer alır.

Bağlantı

  • Potansiyometrenin kenar bacakları 5V ve GND'ye, orta bacağı A0'a
  • LED direnç üzerinden 9. pine

Kod

// Codebil Campus - Proje 4: Potansiyometre ile LED Parlaklığı
const int POT = A0;
const int LED = 9;   // PWM destekli pin (~)
void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}
void loop() {
  int deger = analogRead(POT);              // 0 - 1023
  int parlaklik = map(deger, 0, 1023, 0, 255); // 0 - 255
  analogWrite(LED, parlaklik);
  Serial.print("Potansiyometre: ");
  Serial.print(deger);
  Serial.print("  Parlaklik: ");
  Serial.println(parlaklik);
  delay(50);
}

map() ne yapıyor?

Okuduğumuz değer 0-1023 aralığında, analogWrite ise 0-255 bekliyor. map(deger, 0, 1023, 0, 255) bir aralıktaki değeri diğer aralığa orantılı olarak çevirir. 512 değeri yaklaşık 127'ye dönüşür.

Seri Monitör

Yükledikten sonra Araçlar > Seri Monitör'ü açın. Düğmeyi çevirdikçe değerlerin nasıl değiştiğini canlı izleyebilirsiniz. Hata ayıklamanın en güçlü aracı budur.

Konuyu pekiştir

4 soruluk kısa test. Bir seçeneğe dokunduğunuzda doğru cevap ve açıklaması görünür.

0 / 4 cevaplandı
  1. analogRead() hangi aralıkta değer döndürür?

  2. Hangi pin PWM desteklemez?

  3. map(512, 0, 1023, 0, 255) yaklaşık kaç döndürür?

  4. Okunan değerleri bilgisayar ekranında canlı görmek için ne kullanılır?

Aynı dersten diğer konular

Tüm konular