Dijital dünyada her şey siyahtır ya da beyazdır (1 veya 0). Ama gerçek dünya gri tonlarla doludur. Arduino'nun dış dünyadaki "ne kadar?" sorusuna cevap verebilmesi için (Ne kadar sıcak? Ne kadar aydınlık?) Analog Girişleri kullanırız.

1. ADC: Analogdan Dijitale Çevirici

Arduino'nun işlemcisi aslında analog sinyalleri anlayamaz. İçindeki ADC (Analog to Digital Converter) ünitesi, gelen 0-5 Volt arasındaki gerilimi sayısal bir değere dönüştürür.

5V 2.5V 0V ADC İşlemi 1023 511 0 10-Bit Çözünürlük (2 üzeri 10 = 1024 adım)
Matematiksel Karşılık

Arduino Uno'nun ADC çözünürlüğü 10 bit'tir. Bu da voltajı 1024 parçaya böldüğü anlamına gelir.

  • 🔌 0 Volt = 0
  • 🔌 2.5 Volt = ~511-512
  • 🔌 5 Volt = 1023

2. Potansiyometre Bağlantısı

Potansiyometrenin orta bacağı (Sinyal), Arduino'nun A0 - A5 arasındaki analog girişlerinden birine bağlanmalıdır. Kenar bacaklar ise 5V ve GND'ye gider.

ARDUINO UNO 5V GND A0 BAĞLANTI

3. Yazılım (Seri Monitörden Okuma)

Bu kod ile potansiyometreyi çevirdikçe 0 ile 1023 arasında değişen sayıları bilgisayar ekranında göreceğiz.

Analog_Read.ino C++
const int potPin = A0;  // Potansiyometrenin bağlı olduğu pin
int deger = 0;          // Okunan değeri saklayacağımız değişken

void setup() {
  Serial.begin(9600);   // Seri haberleşmeyi başlat (PC ile konuşma)
}

void loop() {
  // 1. Analog değeri oku (0 - 1023 arası)
  deger = analogRead(potPin);

  // 2. Değeri ekrana yazdır
  Serial.print("Okunan Deger: ");
  Serial.println(deger);
  
  // 3. Voltaj karşılığını hesapla (Matematiksel çeviri)
  // 5.0 / 1023.0 * deger formülü ile gerçek voltajı bulabiliriz
  float voltaj = (5.0 / 1023.0) * deger;
  Serial.print("Voltaj: ");
  Serial.println(voltaj);
  Serial.println("----------------");

  delay(500); // Yarım saniye bekle
}
        

4. İpucu: map() Fonksiyonu

Sorun: Analog okuma 0-1023 verir. Ama LED parlaklığı (PWM) 0-255 arası değer ister. Veya Servo motor 0-180 derece ister.

Çözüm: map() fonksiyonu bu aralıkları birbirine orantılar.


int yeniDeger = map(deger, 0, 1023, 0, 255);

Bu kod, 0-1023 arasındaki okunan değeri orantılı olarak 0-255 arasına sıkıştırır.