digitalRead fonksiyonu, 0 ve 5 volt arasındaki gerilimlerin tam değerini ölçemez. Sadece voltaj düşük yada voltaj yüksek şeklinde bilgi almamızı sağlar. 0 ve 5 volt arasındaki gerilimin tam değerinin ölçülmesi için analogRead fonksiyonu kullanılmalıdır. Fakat bu fonksiyon, tüm pinler için kullanılamaz. Bu fonksiyonun kullanılabileceği özel pinler vardır. Bunlara analog pinler denir ve genellikle A harfi ile başlarlar: A0, A1, A2… gibi. Kullanılan Arduino türüne göre bu pinlerin sayısı farklılık gösterebilir.
Arduino Uno'da 6, Arduino Mega'da 16 tane analog giriş bulunur. Kullanılacak analog pin, öncelikle giriş olarak tanımlanmalıdır.
Arduino UNO üzerindeki işlemcide, 10-bit çözünürlüğe sahip bir ADC ( analog digital dönüştürücü) bulunmaktadır.
Arduino mikrokontrolcüsü 5V gerilimle çalışmaktadır. Bu mikrokontrolcüde ADC, 0V ile 5V arası gerilimleri 210 = 1024 adım hassasiyet ile okuyabilir. Yani analog input pinine 0 V gerilim verildipinde 0 değerini; aynı şekilde 5V gerilim verildiğinde ise 1023 değerini alacaktır.
Örnek: Bir potansiyometrenin orta bacağını A0 pinine, diğer bacaklarının birini +5v diğerini de GND pinlerine bağlayarak aşağıdaki kodları yazınız. Daha sonra seri port ekranından potansiyometreyi ayarlayarak değişen değerleri kontrol ediniz.
int analogDeger=0; void setup() { /*A0 giriş olarak tanımlandı.*/ pinMode(A0,INPUT); Serial.begin(9600); } void loop() { /*A0 değeri okunarak analogDegere atandı*/ analogDeger=analogRead(A0); Serial.println(analogDeger) }