Mengenal bagian-bagian dari Arduino Uno

Arduino Uno adalah salah satu papan mikrokontroler berbasis ATMega328P yang populer digunakan untuk proyek elektronik dan pengendalian (kontrol). Sebagai sistem mikrokontroler open-source, Arduino terdiri dari hardware berupa papan sirkuit serta software IDE (Integrated Development Environment) untuk memrogramnya. Papan ini sudah dilengkapi semua yang dibutuhkan untuk mulai bekerja: mikrokontroler utama ATmega328P, konektor USB untuk pemrograman, jack catu daya eksternal, regulator tegangan, serta berbagai pin input/output. Dengan hanya menghubungkan Arduino ke komputer lewat kabel USB atau ke adaptor DC atau baterai, kita sudah bisa menyalakan dan memprogramnya. Arduino Uno beroperasi dengan tegangan logika 5V dan clock 16 MHz, serta memiliki memori 32 KB flash (untuk menyimpan program), 2 KB SRAM, dan 1 KB EEPROM.

Secara arsitektur, Arduino Uno Rev3 menggunakan dua chip utama. Pertama, mikrokontroler ATmega328P sebagai otak utama papan yang menjalankan program dan mengontrol pin I/O. Kedua, chip ATmega16U2 (pada Rev3) berfungsi sebagai konverter USB-ke-serial sehingga Arduino dapat terhubung ke komputer tanpa modul FTDI tambahan. ATmega328P memiliki arsitektur RISC 8-bit dengan kemampuan ADC 10-bit (untuk pin analog), komunikasi serial UART, I²C, SPI, dan prosesor 16 MHz. Chip ATmega16U2 bertugas mengonversi sinyal USB menjadi sinyal TTL serial (TX/RX) yang kemudian disalurkan ke ATmega328P (atau sebaliknya). Konfigurasi inilah yang membuat Arduino Uno mudah diprogram lewat port USB komputer dan dapat berkomunikasi secara serial dengan PC.

Ads Jadwal Training bisaioti Offline
NoMateriTanggalWaktuHargaLokasiViewAction
1IOT PLC SCADA Siemens7-8 Juni 202508.00 - 16.002000000Surabayahttps://bisaioti.com/kursus-plc/siemens/fast-track/https://lab.bisaioti.com/courses/training-iot-plc-scada-siemens/
2IOT PLC SCADA Omron14 - 15 Juni 202508.00 - 16.002000000Surabayahttps://bisaioti.com/kursus-plc/omron/fast-track/https://lab.bisaioti.com/courses/training-iot-plc-scada-omron/
3IOT PLC SCADA Schneider21-22 Juni 202508.00 -16.002000000Surabayahttps://bisaioti.com/kursus-plc/schneider/fast-track/https://lab.bisaioti.com/courses/training-iot-plc-scada-schneider/
4IOT PLC SCADA Allen Bradley28-29 Juni 202508.00-16.002000000Surabayahttps://bisaioti.com/kursus-plc/allen-bradly/fast-track/https://lab.bisaioti.com/courses/training-iot-plc-scada-allen-bradley/

Di bawah ini akan dijelaskan komponen-komponen utama pada papan Arduino Uno beserta fungsinya, serta bagaimana setiap bagian tersebut dapat digunakan dalam proyek sederhana. Penjelasan disusun per kategori pin dan komponen, sehingga mudah dipahami.

Pin Digital (Digital I/O)

Arduino Uno memiliki 14 pin digital yang diberi nomor 0–13. Semua pin ini dapat diatur sebagai input atau output digital menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead() dalam kode Arduino. Tegangan logika pada pin digital adalah 5V: ketika kita mengeluarkan HIGH, pin akan berada pada 5V; LOW berarti 0V (ground). Tiap pin digital mampu memberikan arus maksimum ~20 mA (dan 40 mA dalam batas ekstrim). Beberapa pin memiliki fungsi khusus seperti PWM dan serial (bisa dibahas kemudian).

Sebagai contoh, pin digital sering digunakan untuk mengendalikan LED atau saklar (pushbutton). Misalnya, untuk menyalakan LED di pin 13 (yang terhubung ke LED bawaan papan), kita dapat menulis:

void setup() {

  pinMode(13, OUTPUT);     // Set pin 13 sebagai output

}




void loop() {

  digitalWrite(13, HIGH);  // Nyalakan LED built-in

  delay(1000);             // Tunggu 1 detik

  digitalWrite(13, LOW);   // Matikan LED

  delay(1000);             // Tunggu 1 detik

}

Pada contoh di atas, pinMode(13, OUTPUT) mengatur pin 13 sebagai output, lalu digitalWrite(13, HIGH) memberi logika HIGH (5V) untuk menyalakan LED, dan digitalWrite(13, LOW) mematikannya. Fungsi delay() memberi jeda waktu. Dengan kode ini, LED pada pin 13 akan berkedip dengan interval 1 detik. Tutorial resmi Arduino juga menampilkan contoh serupa pada contoh Blink.

Selain menyalakan LED, pin digital dapat membaca keadaan saklar atau sensor digital. Misalnya, untuk membaca tombol tekan, kita atur pin sebagai INPUT atau INPUT_PULLUP dan gunakan digitalRead(pin). Jika saklar terhubung ke ground dan pin dilengkapi resistor pull-up, maka digitalRead() akan memberi nilai LOW saat tombol ditekan. Contoh sederhana:

  • Hubungkan tombol tekan (pushbutton) dari 5V ke pin 2, dengan pin 2 diatur sebagai INPUT_PULLUP. Ketika tombol ditekan, digitalRead(2) akan memberi nilai LOW.
  • Dalam loop, kita bisa cek if (digitalRead(2) == LOW) {…} untuk memicu aksi.

Pin digital juga mendukung PWM (Pulse Width Modulation) pada 6 pin tertentu (3, 5, 6, 9, 10, 11). Pin PWM ini bisa memberikan sinyal mirip analog dengan fungsi analogWrite(pin, nilaiPWM). Misalnya, jika dihubungkan ke LED, analogWrite dapat menghasilkan tingkat kecerahan variabel (anggapan nilai 0–255). Ini berguna untuk mengendalikan kecepatan motor, kecerahan lampu, dan lain-lain.

Pin Analog (Input Analog)

Di sisi Arduino Uno terdapat 6 pin analog yang diberi label A0–A5. Pin ini hanya untuk input dan terhubung ke rangkaian ADC (Analog-to-Digital Converter) 10-bit di dalam ATmega328P. Artinya, jika kita membaca pin analog, Arduino akan mengonversi tegangan antara 0–5V menjadi nilai digital antara 0–1023. Sebagai contoh, jika kita memberi 5V penuh ke pin A0, maka analogRead(A0) akan menghasilkan 1023; jika 0V, hasilnya 0; nilai di antaranya proporsional.

Pin analog banyak digunakan untuk membaca sensor analog (misalnya sensor suhu, sensor cahaya LDR, potensiometer, dan sebagainya). Contoh kode sederhana untuk membaca sensor analog:

void setup() {

  Serial.begin(9600);       // Mulai komunikasi serial dengan komputer

}




void loop() {

  int nilaiSensor = analogRead(A0);   // Baca tegangan di pin A0 (0-1023)

  float tegangan = nilaiSensor * (5.0 / 1023.0); // Konversi ke tegangan (opsional)

  Serial.print("Tegangan: ");

  Serial.print(tegangan);

  Serial.println(" V");

  delay(500);

}

Dalam contoh di atas, kita gunakan analogRead(A0) untuk mendapatkan nilai antara 0–1023 yang dibaca pada pin A0. Baris float tegangan = nilaiSensor * (5.0/1023.0); menghitung nilai voltase sebenarnya dengan asumsi referensi 5V. Kemudian data ini dikirim ke PC lewat serial, sehingga kita bisa melihat hasilnya di Serial Monitor. Fungsi analogRead() dijelaskan di dokumentasi Arduino menghasilkan nilai 0–1023 proporsional dengan tegangan masukan.

Guna pin analog juga bisa beralih sebagai pin digital tambahan jika diperlukan, dengan menyebutnya sebagai pin 14–19 (A0 = 14, A1 = 15, dst.). Namun umumnya lebih mudah memakai label A0–A5.

Pin Daya (Power Pins)

Bagian power pada Arduino Uno menyediakan sumber tegangan untuk papan dan komponen tambahan. Beberapa pin daya penting pada board adalah:

  • 5V: Pin ini menghasilkan tegangan 5 volt ter-regulasi dari regulator on-board. Semua pin I/O Arduino menggunakan 5V sebagai logika, jadi pin ini bisa dipakai untuk memberi catu daya 5V ke sensor atau modul lain. Tegangan 5V tersedia jika papan diberi suplai lewat USB atau jack DC (7–12V).
  • 3.3V: Pin ini menyediakan 3.3V stabil (dihasilkan oleh regulator khusus), dengan arus maksimum sekitar 50 mA. Bermanfaat untuk perangkat yang membutuhkan 3.3V, seperti modul radio NRF24L01, sensor tertentu, atau ESP8266 dalam mode 3.3V.
  • Vin: Pin ini adalah input tegangan mentah saat menggunakan catu daya eksternal. Jika kita menyuplai papan lewat jack DC (misalnya adapter 9V), maka kita sebenarnya bisa mengambilnya kembali dari pin Vin (sekitar 7–12V) atau sebaliknya memasok papan lewat Vin dengan 7–12V dan melewatkan regulator (dengan catatan tegangan melewati regulator).
  • GND: Terdapat beberapa pin ground (GND) di papan, semua saling terhubung. Pin ini digunakan sebagai referensi 0V atau ground ketika memasang komponen eksternal. Kita bisa sambungkan ground sensor atau rangkaian lain ke salah satu pin GND.

Pin-pin daya ini berguna untuk menyalurkan listrik ke komponen eksternal tanpa harus menggunakan sumber terpisah. Misalnya, kita bisa memberi catu daya 5V ke sensor LDR atau modul relay langsung dari pin 5V dan ground Arduino. Dengan cara ini, Arduino juga dapat mempersingkat kabel pada rangkaian.

Pin Komunikasi Serial (TX/RX)

Pin 0 (RX) dan 1 (TX) pada Arduino Uno adalah pin digital yang telah ditetapkan untuk komunikasi serial UART (TTL 5V). Pin ini menghubungkan mikrocontroller ATmega328P ke chip ATmega16U2, yang selanjutnya mengonversinya ke USB untuk komunikasi dengan komputer. Singkatnya, saat kita menggunakan perintah Serial.begin(), Serial.print(), dll., data dikirim melalui pin TX (1) dan diterima melalui RX (0) lalu via USB ke PC.

Fungsi TX/RX ini biasa dipakai untuk mengirim data ke komputer (misalnya debug serial) atau untuk komunikasi antar Arduino/perangkat lain. Contohnya, kode berikut mengirim data ke Serial Monitor:

void setup() {

  Serial.begin(9600);    // Inisiasi komunikasi serial pada baudrate 9600

}




void loop() {

  Serial.println("Halo, Arduino!");

  delay(1000);

}

Kode di atas akan mengirim string “Halo, Arduino!” setiap detik melalui USB ke komputer, yang dapat dilihat di Serial Monitor Arduino IDE. LED TX dan RX di papan akan menyala berkedip setiap kali data serial dikirim atau diterima. LED TX menyala saat Arduino mentransmisikan data (TX) dan LED RX menyala saat menerima data (RX). Ini sangat membantu saat debugging; misalnya, jika LED RX/TX tidak berkedip saat kita meng-upload program, bisa jadi ada masalah sambungan atau driver USB.

Perlu dicatat, karena pin 0 dan 1 digunakan oleh komunikasi USB, menggunakan pin ini untuk peralatan lain (misal sensor digital) dapat mengganggu upload program atau komunikasi serial.

Selain UART hardware, Arduino juga menyediakan SoftwareSerial library untuk membuat koneksi serial tambahan pada pin digital lain jika diperlukan.

Pin I²C (SDA/SCL)

Arduino Uno Rev3 memiliki dua pin khusus untuk komunikasi I²C (TWI), yaitu SDA dan SCL. Pada papan Uno, pin ini terletak di dekat AREF: pin SDA berhubungan dengan A4, dan pin SCL dengan A5. (Secara teknis, A4/A5 juga bisa disebut pin analog, namun Arduinolr menandainya SDA/SCL untuk mempermudah koneksi I2C.)

I²C adalah protokol komunikasi dua kabel yang sering digunakan untuk menghubungkan microcontroller dengan sensor atau modul seperti RTC, sensor suhu, akselerometer, ekspander port, dll. Untuk menggunakan I2C, kita biasanya menghubungkan jalur SDA ke SDA Arduino (A4) dan jalur SCL ke SCL (A5), serta menyambungkan ground bersama. Contoh populer: modul LCD I²C 16×2 menggunakan dua pin ini.

Panduan dari Ardutech (blog Arduino Indonesia) menjelaskan bahwa SDA dihubungkan ke pin A4 dan SCL ke A5, seperti terlihat pada koneksi perangkat I²C biasa. Kita cukup menggunakan pustaka Wire.h untuk berkomunikasi. Contoh kode sederhana (misalnya membaca data suhu dari sensor I2C) bisa seperti:

#include <Wire.h>




void setup() {

  Wire.begin();               // Inisialisasi I2C sebagai master

  Serial.begin(9600);

}




void loop() {

  Wire.requestFrom(0x48, 2);  // Minta 2 byte dari alamat I2C 0x48 (contoh sensor)

  if (Wire.available() >= 2) {

    int data = Wire.read() << 8 | Wire.read();

    Serial.println(data);

  }

  delay(1000);

}

Pada contoh di atas, kita menginisialisasi Wire dan meminta data dari perangkat I²C (misalnya sensor) dengan alamat 0x48. Data yang diterima kemudian diproses dan dikirim ke serial. Konsep dasarnya: I2C memudahkan pengkabelan banyak perangkat dengan hanya 2 jalur. Pin SDA/SCL ini ditambahkan pada versi R3 sehingga saat ini ada header khusus, meski secara fungsional pin tersebut sama dengan A4/A5.

Pin ICSP (In-Circuit Serial Programming)

Arduino Uno juga memiliki 2 header ICSP (In-Circuit Serial Programming) yang masing-masing berisi 6 pin (3×2 pin male). Header ICSP ini menyediakan jalur SPI (MISO, MOSI, SCK) bersama VCC, GND, dan Reset. Di Arduino Uno R3 ada dua header ICSP: satu untuk mikrokontroler utama ATmega328, dan satu lagi untuk ATmega16U2 (USB-serial chip).

Fungsi utama header ICSP adalah untuk memrogram chip secara langsung menggunakan programmer eksternal (misalnya USBasp, Arduino lain sebagai ISP, dsb.). Misalnya, ketika ingin mengganti bootloader ATmega328 atau ATmega16U2, kita bisa sambungkan programmer ke ICSP dan menulis langsung ke memori flash chip. ElectronicWings menegaskan “Arduino UNO memiliki dua header ICSP: satu untuk ATmega16U2 dan satu untuk ATmega328”.

Dalam koneksinya, pin ICSP membawa jalur SPI sebagai berikut: untuk ATmega328, pin 10=SS, 11=MOSI, 12=MISO, 13=SCK; serta Reset, Vcc, GND. Untuk ATmega16U2, layout serupa ada di header terpisah di dekat chip tersebut. Bagi pemula, Anda mungkin jarang menggunakan ICSP kecuali untuk proyek khusus (misal memasang bootloader baru). Namun, mengetahui letaknya berguna jika suatu saat perlu menginstal firmware menggunakan SPI.

Tombol Reset

Pada papan Arduino Uno terdapat tombol RESET kecil berwarna hitam. Menekan tombol ini akan menghubungkan pin RESET di mikrocontroller ke ground untuk sesaat, sehingga mikrokontroler melakukan reset dan menjalankan ulang program dari awal. Tombol reset sangat berguna saat pengembangan: misalnya jika sebuah program hanya berjalan satu kali, kita bisa menekan reset untuk memulai lagi. Atau jika board mengalami error, reset dapat membantu mengembalikannya ke kondisi awal program. Arduino Uno Rev3 juga dilengkapi fitur auto-reset via USB (jalur DTR) yang otomatis me-reset chip saat mulai upload, sehingga pengguna tidak perlu menekan tombol reset secara manual.

Regulator Tegangan

Di sebelah jack catu daya terdapat regulator tegangan onboard yang berfungsi menurunkan tegangan input menjadi 5V yang stabil untuk board. Jika kita menyuplai Arduino melalui jack DC (misalnya 9–12V), regulator ini “menyalurkan” 5V ke sirkuit dan pin 5V. Artikel pembelajaran Arduino Binus menjelaskan regulator tegangan seperti “gatekeeper”, yang membatasi berapa banyak tegangan masuk ke papan.

Regulator ini memiliki batas operasional: Arduino Uno dapat menerima catu daya eksternal 6–20V, namun disarankan menggunakan 7–12V agar tidak terlalu panas. Jika lebih dari 12V, regulator mungkin panas berlebih dan bisa rusak. Jika kurang dari 7V, maka 5V keluaran mungkin turun dan sistem tidak stabil. Oleh karena itu, selalu cek label regulator dan papan Arduino untuk rentang tegangan yang aman.

Secara singkat, jika kita menggunakan adaptor DC 9V, regulator akan menghasilkan 5V ke board. Jika kita gunakan USB (5V), sinyal USB melewati polyfuse (pengaman arus) dan langsung ke 5V. Regulator juga menyediakan tegangan 3.3V dari chip khusus (maks 50 mA) bagi modul yang membutuhkan tegangan lebih rendah.

Soket USB

Soket USB (Type B) pada Arduino Uno adalah antarmuka utama untuk memprogram dan memberi daya papan. Dengan kabel USB (biasanya USB A to B), kita hubungkan Arduino ke komputer. Komputer akan mengenali Arduino sebagai perangkat serial (COM port) berkat chip ATmega16U2. Melalui USB inilah kita upload program dari Arduino IDE ke papan, serta menjalankan komunikasi data serial dengan fungsi Serial.print().

Selain pemrograman, USB juga mensuplai arus ke Arduino. Artinya, papan bisa menyala hanya dengan terhubung ke USB tanpa adaptor tambahan. Hal ini membuat pengujian dan penggunaan sederhana (misal di laptop) menjadi mudah. Karena ada perlindungan fuse, Arduino juga melindungi port USB komputer dari arus lebih.

Penggunaan USB untuk komunikasi memungkinkan Arduino mengirimkan data ke PC (misal pembacaan sensor) atau menerima perintah dari komputer. IDE Arduino memiliki Serial Monitor yang berguna untuk melihat data ini secara real-time. Misalnya, saat kita mengetik Serial.println(nilaiSensor);, LED RX/TX akan berkedip saat data keluar/masuk melalui USB.

Soket Catu Daya Eksternal

Selain USB, Arduino Uno juga dapat diberi catu daya dari luar (non-USB). Terdapat jack DC jack (2.1mm center-positive) di papan. Kita bisa menancapkan adaptor DC (misalnya adaptor AC-DC 9V) ke sini. Jack ini terhubung ke pin Vin dan regulator onboard. Spesifikasi Arduino menyebut adapter dapat berupa 6–20V, tetapi idealnya 7–12V. Papan akan otomatis memilih sumber daya mana yang digunakan: USB atau jack DC.

Selain itu, board memiliki header POWER yang berisi pin Vin, GND, 5V, dan 3.3V (lihat bagian pin daya). Kita bisa juga memberi daya dengan menghubungkan baterai ke pin Vin dan GND. Misalnya, sebatang baterai 9V dapat disambungkan ke jack DC, atau dua pin (9V ke Vin, GND ke GND) untuk memberi daya. Ini memungkinkan proyek portabel tanpa PC. Namun, perlu hati-hati bahwa pemasangan tegangan langsung ke pin 5V atau 3.3V mem-bypass regulator dan bisa merusak papan. Selalu gunakan Vin atau jack jika ingin catu daya tinggi masuk.

Mikrokontroler Utama: ATmega328P

Chip ATmega328P adalah “otak” Arduino Uno. Ia menjalankan semua instruksi program yang kita tulis. ATmega328P adalah mikrokontroler AVR 8-bit buatan Atmel (kini Microchip) dengan arsitektur RISC. Beberapa fitur utamanya: flash memory 32 KB (untuk program), SRAM 2 KB, EEPROM 1 KB, ADC 10-bit, 23 pin I/O (14 digital + 6 analog input), UART, SPI, I2C, dan clock up to 20 MHz (Uno menggunakan 16 MHz). Semua ini tertulis singkat di spesifikasi resmi Arduino.

Karena sudah ada bootloader Optiboot terprogram di chip ini, kita dapat mengupload sketch tanpa programmer eksternal (melalui USB). Namun, jika diperlukan (misal bootloader rusak), kita bisa juga memprogramnya lewat ICSP header menggunakan programmer AVR. Mengenai arsitektur internalnya, ATmega328P memiliki banyak register, timer, dan modul komunikasi, sehingga fleksibel dipakai di berbagai aplikasi elektronik seperti kendali motor, pembacaan sensor, otomasi, dsb. Arduino menyederhanakannya dengan fungsi-fungsi high-level (digitalRead, analogRead, Serial, dll.) sehingga pemula pun mudah mulai tanpa mempelajari semua detail register AVR.

Mikrokontroler USB-to-Serial: ATmega16U2

Pada papan Uno Rev3, chip ATmega16U2 (wadah TQFP) bertanggung jawab sebagai jembatan USB-ke-serial. Artinya, sinyal USB dari komputer diubah menjadi sinyal TX/RX TTL 5V yang dapat dimengerti ATmega328P. RheingoldHeavy menjelaskan: “ATmega16U2 adalah chip yang bertanggung jawab mengkonversi sinyal USB menjadi bit yang dapat dibaca oleh pin serial Tx dan Rx mikrokontroler utama (ATmega328P)”. Sebaliknya, ketika ATmega328P mengirim data melalui UART, ATmega16U2 akan mengirimkannya via USB ke PC.

Pada versi Uno sebelumnya (Rev1/Rev2) digunakan chip ATmega8U2, tetapi mulai Rev3 diganti ke ATmega16U2 dengan fungsi serupa. Keuntungan memakai chip ini adalah kita tidak perlu membeli converter FTDI terpisah; firmware yang mengendalikan ATmega16U2 sudah ada di pustaka Arduino. Jika chip ini bermasalah (firmware korup), Arduino menyediakan cara flashing ulang lewat DFU (ada di dokumentasi Arduino).

Secara praktis, ATmega16U2 adalah peralatan dalam di dalam board. Pengguna Arduino biasa tidak perlu mengkhawatirkan detailnya, selama chip ini bekerja board dapat diprogram dan berkomunikasi dengan komputer.

LED Indikator pada Papan

Arduino Uno dilengkapi beberapa LED kecil yang memberikan indikasi status papan:

  • LED Power (ON): LED berwarna hijau yang menandakan papan mendapatkan daya. LED ini berada di dekat tulisan “ON” di papan. Jika Arduino terhubung ke sumber daya (USB atau adaptor), LED ini akan menyala. Jika tidak menyala, berarti board tidak mendapat daya (atau rusak koneksinya).
  • LED TX/RX: LED labeled TX (biasanya oranye) dan RX (biasanya hijau) berfungsi sebagai indikator komunikasi serial melalui USB. LED TX menyala berkedip ketika board mentransmisikan data serial ke komputer, sedangkan LED RX berkedip saat board menerima data serial dari komputer. Misalnya, saat kita upload program atau pakai Serial.print(), LED ini akan berkedip. Ini membantu melihat apakah komunikasi serial berjalan.
  • LED Built-in (Pin 13): Arduino Uno memiliki LED on-board yang dihubungkan dengan digital pin 13. LED ini biasa disebut LED_BUILTIN. Artinya, ketika kita memberikan HIGH pada pin 13 (melalui digitalWrite), LED ini akan menyala secara fisik. LED ini berguna sebagai indikator cepat atau untuk latihan pemula (seperti contoh Blink di atas). Spesifikasi resmi menyebutkan: “Ada LED built-in yang dikendalikan oleh pin digital 13. Saat pin HIGH, LED menyala; saat LOW, LED mati.”. Dengan demikian, kita tidak perlu menambahkan LED eksternal hanya untuk coba-coba menyalakan LED.

LED-Led ini hanya indikator sederhana, namun sangat berguna untuk memantau status papan. Misalnya, melihat LED TX/RX dapat mengonfirmasi data benar-benar dikirim.

Pin Referensi (AREF) dan Ground (GND)

Selain pin-pin I/O, ada dua jenis pin penting lain:

  • AREF (Analog Reference): Pin AREF digunakan untuk memberi tegangan referensi eksternal bagi ADC Arduino. Secara default, ADC Arduino menggunakan tegangan referensi internal (5V) untuk pembacaan analog. Namun jika kita ingin pembacaan analog dengan skala berbeda (misal sensor yang hanya memerlukan 2.5V sebagai maksimum), kita bisa menyuplai tegangan referensi eksternal pada pin AREF (dengan analogReference(EXTERNAL) di kode). Dokumentasi Arduino menyatakan: “Pin AREF dapat digunakan untuk menyediakan tegangan referensi eksternal untuk konversi analog-ke-digital”. Misalnya, jika kita pasang 2.5V pada AREF dan panggil analogReference(EXTERNAL), maka analogRead() akan membaca 0–1023 setara dengan 0–2.5V, meningkatkan akurasi di rentang yang lebih kecil. Bagi pemula, dalam banyak kasus cukup biarkan AREF tidak terpakai dan gunakan referensi default.
  • Ground (GND): Ground atau “nol volt” adalah referensi tegangan. Arduino Uno memiliki beberapa pin ground yang semua berhubungan. Komponen eksternal harus tersambung ke ground Arduino agar rangkaian lengkap. Misalnya, saat menyambung sensor atau modul, kabel ground sensor harus ke GND Arduino agar tegangan diukur relatif terhadap ground yang sama. Pin GND juga biasa digunakan untuk menyuplai ground ke breadboard. Ground digital (bawaan regulator) ada beberapa titik di papan untuk memudahkan koneksi.

Dengan demikian, semua pin telah dibahas secara umum. Selanjutnya kita rangkum cara menggunakan berbagai pin ini dalam contoh proyek sederhana.

Contoh Kode dan Proyek Sederhana

Berikut ini beberapa contoh penggunakan Arduino Uno dengan kode sederhana untuk memahami konsep di atas:

  1. Membaca Sensor Analog (Temperatur/potensiometer): Sambungkan sensor analog (misalnya LM35) ke pin A0 dan GND/Vcc. Dalam kode, atur Serial.begin(9600) dan baca dengan analogRead(A0). Konversi ke suhu (jika LM35) atau tegangan, lalu kirim ke Serial Monitor. Contoh:
int nilai = analogRead(A0);               // Baca dari pin A0

float volt = nilai * (5.0 / 1023.0);      // Konversi ke volt

float temperatur = volt * 100;            // Asumsi LM35 (10mV per °C)

Serial.print("Suhu: ");

Serial.print(temperatur);

Serial.println(" C");

Setiap pembacaan analog (0–1023) menggambarkan tegangan dari 0–5V. Modul sensor suhu (LM35) mengeluarkan ~10 mV per °C, sehingga 1°C = 0.01 V, contohnya untuk mengkonversi.

  1. Mengendalikan LED (Digital Output): Coba kode Blink sederhana seperti di atas (pin 13). Perluas proyek dengan menambahkan LED eksternal: hubungkan LED + resistor ke pin digital lain (misal pin 9) dan ground, lalu atur pinMode(9, OUTPUT). Ubah script supaya LED berkedip pada pin itu menggunakan digitalWrite(9, HIGH/LOW). Ini melatih pemahaman digitalWrite.
  2. Pembacaan Tombol dan Respon: Hubungkan tombol tekan ke pin digital 2 dengan resistor pull-down atau gunakan INPUT_PULLUP. Misal, pinMode(2, INPUT_PULLUP); dan tombol ke ground. Dalam loop(), periksa if (digitalRead(2) == LOW) artinya tombol ditekan. Ketika ditekan, nyalakan LED di pin 13 atau kirim pesan serial. Ini menggabungkan digitalRead dengan digitalWrite.
  3. Komunikasi Serial PC-Arduino: Gunakan Serial Monitor untuk berinteraksi. Contoh, perangkat kecil yang mengirim data sensor analog setiap detik ke PC (seperti pada contoh #1). Atau sebaliknya, terima perintah dari PC:
if (Serial.available()) {

  char c = Serial.read();

  if (c == 'L') {

    digitalWrite(13, HIGH);  // jika kirim karakter 'L', LED pin 13 nyala

  } else if (c == '0') {

    digitalWrite(13, LOW);   // '0' mematikan LED

  }

}

Program di PC (dalam serial monitor atau script Python) bisa mengirim karakter untuk mengendalikan Arduino.

  1. I²C – LCD / RTC: Pasang modul LCD I²C 16×2 ke Arduino (SDA ke A4, SCL ke A5, VCC ke 5V, GND ke GND). Gunakan pustaka Wire dan LiquidCrystal_I2C untuk menampilkan tulisan. Misal:
#include <Wire.h>

#include <LiquidCrystal_I2C.h>




LiquidCrystal_I2C lcd(0x27, 16, 2);  // Alamat 0x27

void setup() {

  lcd.init();

  lcd.backlight();

  lcd.print("Halo Arduino");

}

void loop() { }

Layar LCD akan menampilkan “Halo Arduino” tanpa perlu banyak kabel. Ini memanfaatkan I²C untuk komunikasi, hanya 2 pin (SDA/SCL) digunakan.

  1. PWM (Kontrol Kecerahan LED atau Motor): Hubungkan LED atau motor kecil ke pin PWM (misal D3). Gunakan fungsi analogWrite(pin, nilai) untuk mengatur kecepatan/motor atau kecerahan LED. Contoh membuat LED meredup-menerang:
int brightness = 0;

void setup() { pinMode(3, OUTPUT); }

void loop() {

  analogWrite(3, brightness);

  brightness = (brightness + 5) % 256;

  delay(50);

}

analogWrite pada pin PWM mengoutput tegangan “rata-rata” antara 0–5V sesuai nilai 0–255.

Melalui contoh-contoh di atas, terlihat bagaimana pin-pin Arduino Uno digunakan dalam praktik: pin analog untuk sensor, pin digital untuk aktuator, komunikasi serial untuk interaksi data, serta I2C untuk modul canggih. Setiap tutorial atau proyek yang lebih kompleks pun pada dasarnya mengkombinasikan fungsi-fungsi dasar ini.

Kesimpulan: Arduino Uno adalah papan mikrokontroler serbaguna yang memiliki berbagai pin dan komponen pengendali. Pin digital 0–13 menangani logika digital dan komunikasi UART, pin analog A0–A5 menangani pembacaan sinyal analog, pin SDA/SCL menangani I²C, serta ada header ICSP untuk pemrograman SPI. Terdapat pula pin-pin daya (5V, 3.3V, Vin, GND) dan pin referensi (AREF) untuk kelengkapan rangkaian. Komponen seperti tombol reset, regulator tegangan, USB, dan LED indikator (power, TX/RX, LED13) mendukung operasional papan. Dengan pemahaman fungsi masing-masing, siswa SMK atau pemula teknik dapat mulai merancang proyek sederhana: membaca sensor, mengendalikan LED/motor, dan berkomunikasi dengan komputer. Berlatih kode dasar seperti digitalWrite, analogRead, dan Serial.print merupakan langkah awal untuk menguasai Arduino. Dokumentasi resmi Arduino maupun tutorial seperti yang dipaparkan di atas memberi panduan praktis untuk eksplorasi lebih lanjut.

 

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *