Digital elektonikde Lojik 1 – 0 terimlerinden bahsetmiştik. Lojik 1 demek +5v, Lojik 0 ise 0v gerilimlerine karşılık geliyordu (Bazı entegreler/denetleyicilerde Lojik 1 +3.3v olarak ayarlanmıştır). Peki bu +5 ve 0 arasında kalan gerilimler ne oluyor? İşte bunlara dijital elektronikde analog gerilim deniliyor. 0.5v, 1.65v, 2v, 3.75v, 4.05v gibi gerilimler analog gelirlimlere örnektir. Analog okuma işini ADC birimi, analog çıkış verme işini PWM birimi yapar. Bu gerilimleri okumak veya bir pinden çıkış olarak vermek için bazı komutlar vardır.
Analog giriş ve çıkış komutlarından bahsedecek olursak;
analogWrite(pinNo,değer);
Kart da belirtilen (PWM~) pinden PWM çıkışı almak için kullanılan komuttur.
pinNo kısmına PWM çıkışı alınmak istenen pinlerden biri yazılır,
değer kısmına Arduino PWM birimi 8bit olduğu için 0 – 255 arasında bir değer yazılır.
0 — 0V
255 — 5V olarak çıkış verir. 255 ve 0 arasındaki değerlerde bölüm oranına göre voltaj çıkışı verir.
1 2 |
analogWrite(9,127); // 9 nolu PWM pini 2.5V çıkış verir analogWrite(10,191); // 10 nolu PWM pini 3.7V çıkış verir |
analogRead(pinNo);
Bu komut ile kartda belirtilen A0,A1,A2(ANALOG IN) analog pinlerin okunması için kullanılır.
Geri dönüş değeri Arduino ADC birimi 10bit olduğu için tamsayı türünde 0 – 1023 arasındadır.
Analog çeviri işlemi 100 mikrosaniye sürmektedir. Saniye de en fazla 10,000 kez çeviri yapılabilir.
1 2 |
int değer = analogRead(A0); // A0 analog pini oku, değer değişkenine ata int analog = analogRead(A3); // A3 analog pini oku, analog değişkenine ata |
***Analog okuma işlemlerinde pinMode ile pinin giriş olarak belirtilmesine gerek yoktur.
Analog pinler, dijital giriş ve çıkış olarak ayarlanabilir.
***Analog çıkış verme işlemi normalde DAC denilen birim ile yapılır. Ancak çoğu Arduino modelinde DAC birimi olmadığı için, PWM(Darbe genişlik modülasyonu) yöntemi ile yapılmaktadır.