Penjelasan Pin Input Analog pada Arduino

Pins Input Analog

Penjelasan pin input analog pada chip Arduino (Atmega8, Atmega168, ATmega328, atau ATmega1280).


Analog ke Digital converter

mikrokontroller Atmega digunakan untuk papan Arduino berisi 6 channel analog-ke-digital (A / D) converter. Konverter memiliki resolusi 10 bit, dengan bilangan bulat dari 0 sampai 1023. Sementara fungsi utama dari pin analog untuk sebagian besar pengguna Arduino adalah untuk membaca sensor analog, pin analog juga memiliki semua fungsi input tujuan umum / output (GPIO) pin (sama seperti digital pin 0-13).

Akibatnya, jika pengguna perlu pin input output tujuan yang lebih umum, dan semua pin analog tidak digunakan, pin analog dapat digunakan untuk GPIO.

pemetaan pin

Pin analog dapat digunakan sebagai pin digital, seperti pin A0 (untuk input analog 0), A1, dll Sebagai contoh, kode akan terlihat seperti ini untuk mengatur analog pin 0 output, dan untuk mengaturnya High :

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

resistor pullup

Pin analog juga memiliki resistor pullup, yang bekerja secara identik sebagai pullup resistor pada pin digital. Mereka dapat diaktifkan dengan mengeluarkan perintah seperti :

digitalWrite(A0, HIGH);  // set pullup on analog pin 0 

sedangkan pin input.

Sadarilah dengan menyalakan pullup akan mempengaruhi nilai yang dilaporkan oleh analogRead().

Rincian dan Peringatan

Perintah analogRead tidak akan bekerja dengan benar jika pin telah ditetapkan sebelumnya sebagai output, jika hal ini terjadi, atur kembali ke input sebelum menggunakan analogRead. Demikian pula jika pin diatur untuk HIGH sebagai output, pullup resistor akan ditetapkan, ketika beralih kembali ke input.

Datasheet Atmega juga memperingatkan pin analog untuk pembacaan Analog ke Digital (analogRead) pada pin analog lainnya. Hal ini dapat menyebabkan kebisingan listrik dan memperkenalkan jitter dalam sistem analog. Ini mungkin disiasati, setelah memanipulasi pin analog (dalam mode digital), untuk menambahkan penundaan singkat sebelum menggunakan analogRead() untuk membaca pin analog lainnya.

Previous
Next Post »