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.