Contents
Pin analog di papan Arduino adalah pin yang defaultnya digunakan sebagai input analog. Di pin ini Anda bisa mendeteksi besaran tegangan analog dari 0 s/d 5V secara kontinyu. Jadi input tegangan dengan nilai 1V, 1.1V, 2V, 2.7V dan seterusnya sampai 5V pun dapat dengan mudah Anda baca melalui pin ini. Biasanya, sebuah papan Arduino memiliki lebih dari satu pin Analog. Sebagai contoh, papan Arduino Uno memiliki 6 pin analog dengan nama A0 s.d A5. Untuk Arduino Mega lebih banyak lagi, yakni 16 pin Analog.
Jika kita melihat Arduino sebagai sebuah entitas, maka pin A0-A5 ini, sesuai namanya, diperuntukkan sebagai pin analog. Namun kalau kita melihat lebih jauh, bahwasanya sebuah papan Arduino adalah papan kendali dengan komponen utamanya berupa IC mikrokontroller ATmega, maka dapat dikatakan bahwa sebenarnya pin analog Arduino memiliki fungsi lebih daripada sekedar pin Analog saja. Coba perhatikan gambar pinout diagram Arduino sebagai berikut :
Perhatikan, bahwa pin A0 – A5 Arduino (Uno) sebenarnya adalah pin PC0 – PC5 (Port C.0 – Port C.5) milik IC mikrokontroller ATmega. Sebagaimana kita ketahui melalui datasheet, setiap pin mikrokontroller dirancang memiliki dual fungsi, yakni sebagai pin input maupun output digital. Selain itu pada beberapa pin juga memiliki fungsi khusus seperti sebagai input ADC/Analog to Digital Converter (pin PC0 – PC5), sebagai output analog dengan metode PWM/Pulse Width Modulation (PD3, PD5, PD6, PB1, PB2, PB3), fungsi serial di pin PD0 dan PD1 dan sebagainya. Untuk mapping pin mikrokontroller Atmega ke papan Arduino yang lebih detail dapat dibaca pada diagram pinout sebagai berikut :
Dari gambar diagram pinout di atas, dapat kita tarik kesimpulan bahwa sebenarnya pin Analog Arduino di pin A0 – A5 bisa juga diaktifkan sebagai pin digital biasa karena sesungguhnya merupakan pin PC0 – PC5 mikrokontroller Atmega. Hanya saja karena papan Arduino didesain secara compact, maka pin ini difungsikan sebagai pin analog saja. Namun demikian, sekali lagi, pin ini dapat difungsikan sebagai pin digital input/output biasa. Bagaimana caranya, simak tutorialnya di bawah ini :
Pin Analog Arduino sebagai pin output digital
Untuk memfungsikan pin analog Arduino sebagai pin digital, caranya relatif sama dengan pin digital biasa. Anda bisa memanggil pin analog ini dengan nama aliasnya yakni ‘A0’, ‘A1’ s/d ‘A5’). Contoh :
pinMode(A0, OUTPUT); digitalWrite(A0, HIGH);
Baris pertama akan menjadikan pin analog A0 sebagai pin digital output. Sedangkan pada baris berikutnya Anda akan mengeluarkan tegangan ‘HIGH’ (5V atau logika ‘1’) ke pin A0 ini.
[alert-announce]Catatan : jangan lupa untuk meletakkan kode ‘pinMode (a,b); di void setup()[/alert-announce]
Pin Analog Arduino sebagai pin input digital
Untuk mengeset pin analog Arduino sebagai pin input digital caranya agak berbeda. Perlu untuk Anda ketahui bahwa pin PC0 s.d PC5 IC Atmega dilengkapi dengan pull-up resistor internal. Dengan demikian trik untuk menjadikan pin analog Arduino menjadi pin input digital adalah dengan mengeluarkan tegangan ‘HIGH’ ke pin analog tersebut TANPA memanggil fungsi pinMode (a,b); terlebih dahulu.
Contoh :
void setup(){ digitalWrite(A5, HIGH); }
Perhatikan bahwa deklarasi setting pin analog sebagai input digital sebaiknya dilakukan di blok deklarasi void setup() seperti pada contoh di atas. Sesudah Anda menuliskan source code di atas, maka pin analog ‘A5’ akan berfungsi sebagai pin input digital biasa dan dapat digunakan untuk mendeteksi input digital (misalnya penekanan tombol) dengan function digitalRead ();. Contoh penggunaannya :
int A5status=0; void setup(){ Â digitalWrite(A5, HIGH); } void loop() { A5status=digitalRead(A5); if (A5status==0) { Â digitalWrite(13,HIGH) } Else { Â digitalWrite(13, LOW) } }
Contoh sketch di atas adalah untuk menyalakan/mematikan LED papan Arduino di pin 13 berdasarkan status pin A5. Jika bernilai 0 (tombol ditekan) maka LED tersebut akan menyala, dan jika bernilai ‘1’ (tombol dilepas) LED akan padam.
Demikian tutorial Arduino tentang cara menyetting pin Analog Arduino sebagai pin digital baik sebagai input maupun output digital, semoga bermanfaat untuk Anda. Jika ada pertanyaan bisa disampaikan di kolom komentar di bawah. Terima kasih.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
terimakasih, informasinya sangat membantu sekali. tapi yang bagian dalam kotak itu kok tidak ada /tidak terlihat…
sudah diperbaiki ya mb…..thx atas notice-nya
Iya benar benar membantu bagi aq yang awam arduino
Mas mau nanya,,saya kan pakai sensor suhu.sensor suhu itu outputnya analog sdngkan dipapan arduino hanya 6 pin utk A0-A5 sdngkan saya mau pakai lbih dari 6 sensor , jadi gimana ya mas..apakah output sensor suhunya bisa saya masukkan di pin digital 3,4,5,6,7 ? .. Terimakasih
– pin digital tidak bisa membaca tegangan analog, tapi pin analog bisa membaca tegangan digital.
– solusi dari case di atas ada 2, boleh dipilih mana yg lebih tepat sesuai kebutuhan:
1. Menggunakan tipe arduino yang pin analognya lebih banyak semisal arduino mega (16 pin analog), atau
2. Menggunakan tipe sensor suhu yang outputnya dapat dibaca di pin digital, contoh DS18b20
Oke mas
Terimakasih informasinya
Mas mau nanya, kok ic Atmega 328p saya panas banget ya saat diposisi standby menggunakan usb pakai adaptor charger hp output 5v? Pdhal blm 1 jam distandby
Mohon pencerahan nya mas
coba pake power dari usb, gmn hasilnya?
Mas kalo kita bikin alat untuk kirim sms misalkan,,, dan saya punya 3 push buttons trus setiap button mengirimkan isi pesan yang berbeda bisa gak mas? Soalnya saya udh coba dan yang berfungsi button pertama saja yg kedua dan ketiga tidak berfungsi…tolong penjelasannya mas
Q: setiap button mengirimkan isi pesan yang berbeda bisa gak mas?
A: bisa, tergantung scriptnya aja. Jangan lupa bahwa tiap penekanan tombol ada bouncing, ini yg hrs kita antisipasi. Kemudian yg kedua, jeda antar sms minimal 5 detik
mas saya mau tanya saya mau masang 2 sensor BMP 180 Digital ke arduino uno itu gimana? soalnya saya pakai I2C dan pin A4 dan A5 kepake sama lcd dan 1 sensor BMP 180.
diatur i2c address-nya mas. Kl i2c lcd itu addressnya 0x3F atau 0x27 (tergantung tipe module) jadi sensor BMP nya hrs diset selain address tersebut
pengen download gaambarnya buat laporan TA nih, gimana caranya yah:(
printscreen aja
saya pemula,,
saya mau tanya mengenai penambahan pin analog. ternyata saya kekurangan pin analog di arduino uno saya. gimana ya cara nya supaya pin nya bisa bertambah..
kalo saya biasanya pake analog expander via pin i2c mas, salah satunya bisa pake module ads1115. Bisa dicek disini
Bisakah bantu saya membuat program pembacaan pwm dari receiver 8ch dengan fungsi tertentu?
coba dijelaskan dulu mas overview-nya
Tujuan utamanya adalah membuat realistic light untuk mobil remote control 1. Pembacaan Signal PWM dari Receiver 8ch 2. Dari setiap channel memiliki fungsi masing-masing berikut: – ch1 = ch steering = menyalakan lampu sein ketika berbelok __ nilai pwm ke kiri 1500 sein berkedip, output pin 11 – ch2 = ch throttel = menyalakan lampu rem, dan lampu mundur __ nilai pwm lampu rem ON > 1600, output pin A0 __ nilai pwm lampu mundur ON ketika nilai pwm > 1600 tercapai 2 kali, output pin A1 – ch4 = ch lampu = menyalakan head lamp, lightbar, back lamp __… Read more »
pada intinya bisa mas. Saya sarankan pake library biar ga susah bikinnya
sepertinya penjelasan saya tidak bisa tertuang semua seuai yg saya ketik. ada bagian yg hilang.
mungkin bisa dibantu dengan nomor WA yg bisa saya hubungi utk konsultasi?