AnalogInputPins

Bir çaba isteyen bir çip üzerinde analog giriş pimleri tanımı (ATmega8, Atmega 168, ATmega328P veya ATmega1280).

A / D dönüştürücü

Arduino için kullanılan ATmega denetleyicileri yerleşik 6 kanallı (Mini ve Nano'da 8 kanal, Mega'da 16 kanal) analogdan dijitale (A / D) dönüştürücü içerir. Dönüştürücü 10 bit çözünürlüğe sahiptir ve 0 ila 1023 arasında tamsayı döndürür. Çoğu Arduino kullanıcısı için analog pinlerin ana işlevi analog sensörleri okumak olsa da, analog pinler genel amaçlı giriş / çıkış (GPIO) pinlerinin tüm işlevlerine sahiptir. (0 - 13 dijital pinleri ile aynı).

Sonuç olarak, bir kullanıcının daha genel amaçlı giriş çıkış pinlerine ihtiyacı varsa ve tüm analog pinler kullanımda değilse, GPIO için analog pinler kullanılabilir.

Pim eşleme

Analog pimler, A0 (analog giriş 0 için), A1 vb. Takma adlar kullanılarak dijital pimlerle aynı şekilde kullanılabilir. Örneğin, kod, analog pimi 0'ı bir çıkışa ayarlamak ve YÜKSEK olarak ayarlamak için şöyle görünür. :

pinMode(A0, OUTPUT); digitalWrite(A0, HIGH);

Çekme dirençleri

Analog pimler ayrıca dijital pimlerdeki çekme dirençleri ile aynı şekilde çalışan çekme dirençlerine sahiptir. Aşağıdaki gibi bir komut vererek etkinleştirilirler

pinMode(A0, INPUT_PULLUP); // set pull-up on analog pin 0

Ancak, bir pull-up açmanın analogRead () tarafından bildirilen değerleri etkileyeceğini unutmayın.

Detaylar ve Uyarılar

Daha önce bir çıkışa bir pin ayarlanmışsa analogRead komutu düzgün çalışmaz, bu durumda analogRead'i kullanmadan önce tekrar bir girişe ayarlayın. Benzer şekilde, pim bir çıkış olarak YÜKSEK olarak ayarlandıysa, bir girişe geri döndüğünde çekme direnci ayarlanacaktır.

ATmega veri sayfası, analog pimlerin diğer analog pimler üzerinde A / D okumaları (analogOkuma) yapmaya yakın geçici olarak değiştirilmesine karşı da uyarır. Bu, elektrik gürültüsüne neden olabilir ve analog sistemde titreşime neden olabilir. Analog pimleri (dijital modda) değiştirdikten sonra, diğer analog pimleri okumak için analogRead () kullanmadan önce kısa bir gecikme eklemek istenebilir.