• Tidak ada hasil yang ditemukan

BAB II : DASAR TEORI

2.4 Arduino UNO

Arduino merupakan board mikrokontroler yang berbasis platform komputasi fisik bersifat open-source dan dibantu oleh software pemrograman yang mendukung. Arduino dapat digunakan untuk membuat objek interaktif seperti mengambil input dari bermacam-macam saklar ataupun sensor, dan mengendalikan cahaya (lampu), motor, dan keluaran fisik lainnya [10]. Salah satu produk board Arduino adalah Arduino UNO.

Arduino UNO merupakan salah satu produk Arduino yang berbasis mikrokontroler Atmega328. Arduino UNO memiliki 14 buah input/output digital (6 di antaranya bisa digunakan sebagai keluaran Pulse Width Modulation atau PWM), 6 buah

input analog, sebuah osilator keramik 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ICSP header, dan sebuah tombol reset [11]. Berikut ini adalah penampakan Arduino UNO.

Gambar 2.5. Board Arduino UNO [11]

Arduino UNO berbasis pada mikrokontroler Atmega328, memiliki tegangan kerja 5V, dan bisa diberikan sumber tegangan eksternal melalui power jack dengan rentang 7V hingga 12V. Arus DC maksimum pada pin I/O sebesar 40 mA dan 50 mA untuk pin 3,3V. Memori flash yang tersedia sebesar 32KB (karena berbasis Atmega328), memori SRAM sebesar 2KB, dan EEPROM sebesar 1KB. Kecepatan clock maksimalnya adalah 16 MHz [11].

Arduino UNO bisa diberikan sumber tegangan melalui koneksi USB atau menggunakan sumber tegangan eksternal. Sumber tegangan dipilih secara otomatis. Sumber tegangan eksternal dapat diambil dari adapter AC ke DC ataupun baterai. Jika menggunakan adapter, diameternya harus 2,1 mm dengan sambungan positif di tengah kemudian dihubungkan ke power jack. Jika digunakan baterai, dapat dihubungkan ke pin Vin dan Gnd pada konektor POWER [11].

Berikut ini disajikan tabel fungsi khusus pada beberapa pin arduino. Tabel 2.4. Fungsi khusus pada pin Arduino [11]

Fungsi Khusus Pin Keterangan

Serial 0 (RX) dan 1 (TX) Digunakan untuk menerima (RX) dan mengirimkan (TX) data TTL secara serial Interupsi Eksternal 2 dan 3 Dikonfigurasikan untuk menerima interupsi

eksternal untuk kondisi low ataupun perubahan suatu nilai

PWM (Pulse Width Modulation)

3, 5, 6, 9, 10, dan 11 Digunakan untuk menghasilkan PWM

SPI (Serial

Peripheral Interface)

10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)

Digunakan sebagai komunikasi SPI

LED 13 Terdapat lampu LED built-in yang

terkoneksi langsung dengan pin digital 13 TWI (Two Wire

Interface) atau I2C

A4 (SDA) dan A5 (SCL) Digunakan untuk komunikasi I2C

Analog Input A0, A1, A2, A3, A4, A5 Digunakan sebagai pengubah data analog menjadi data digital

2.4.1. Komunikasi I2C

I2C (Inter Integrated Circuit) adalah standar komunikasi serial 2 arah menggunakan 2 saluran yang didisain khusus untuk mengirimkan dan/atau menerima data. Saluran tersebut kemudian disebut sebagai jalur bus [12]. Komunikasi I2C terdiri atas 2 bi-directional jalur bus, jalur yang satu berfungsi sebagai jalur clock (SCL), dan jalur yang lain berfungsi sebagai jalur data (SDA). Komunikasi I2C dapat digunakan hingga 128 piranti berbeda untuk dioperasikan pada jalur bus tersebut. Kebutuhan hardware eksternal yang dibutuhkan adalah resistor pull-up pada setiap jalur (SCL maupun SDA) [13].

Pada komunikasi I2C, terdapat piranti yang disebut Master dan Slave. Master

adalah piranti yang memulai komunikasi I2C dan mengirimkan perintah ke Slave. Slave

adalah piranti yang menerima perintah dari Master dan menjawab perintah yang diberikan

Master. Master maupun Slave dapat beroperasi sebagai pengirim maupun penerima. Sebagai pengirim artinya piranti mengirimkan perintah maupun data tertentu kepada piranti penerima. Sebagai penerima artinya piranti menerima perintah maupun data tertentu kepada piranti pengirim.

Proses Komunikasi I2C adalah sebagai berikut [13].

1. Diawali dengan pengiriman sinyal START oleh master. Sinyal START merupakan transisi keadaan dari keadaan high menjadi low pada SDA saat SCL dalam kondisi high.

2. Pengiriman paket alamat yang berjumlah 9 bit, 7 bit pertama merupakan alamat

slave, 1 bit berikutnya merupakan bit pengendali baca atau tulis (Read/Write control), dan bit terakhir merupakan bit acknowledge yang dikirim oleh slave. Namun pada Arduino, pengalamatan slave menggunakan 7 bit. Jika Arduino ingin berkomunikasi dengan piranti yang memiliki pengalamatan 8 bit, maka pada program Arduino alamat slave tersebut digeser 1 bit ke kanan [14].

3. Pengiriman paket data yang berjumlah 9 bit yang terdiri atas 1 byte data dan sebuah bit acknowledge. Acknowledge (ACK) adalah sinyal low yang dikirimkan slave untuk mengakhiri data ke-n telah dikirimkan. Not Acknowledge (NACK) adalah sinyal high yang dikirim oleh slave untuk memberitahukan master bahwa data terakhir sudah dikirimkan (tidak ada pengiriman data lagi oleh slave).

4. Diakhiri dengan pengiriman sinyal STOP oleh master. Sinyal STOP merupakan transisi keadaan dari keadaan low menjadi high pada SDA saat SCL dalam kondisi high.

2.4.2. Resistor Pull-Up

Resistor pull-up digunakan dalam komunikasi I2C. Hal ini bertujuan untuk memberikan keadaan yang pasti pada pin input mengenai kondisi high ataupun kondisi low

dan tentunya menggunakan arus yang rendah[15]. Kebutuhan akan resistor pull-up harus disesuaikan dengan arus yang masuk ke pin input agar tidak merusaknya. Nilai resistor

pull-up tidak boleh menghasilkan arus yang melebihi arus maksimum yang boleh diterima pin input.

Arduino menggunakan ATMega328. Berdasarkan datasheet, ATMega328 memiliki rentang resistor pull-up 20 kΩ sampai 50 kΩ. Berikut penampakannya.

Tabel 2.5. Sebagian electrical characterstic dari ATMega328 [13]

2.4.3. Komunikasi SPI (Serial Peripheral Interface)

Komunikasi Serial Peripheral Interface atau yang lebih dikenal dengan SPI, sangat umum digunakan untuk mengirimkan data antara mikrokontroler dan beberapa piranti tertentu seperti register geser, sensor, maupun kartu SD. SPI menggunakan jalur data dan clock secara terpisah dan juga jalur piranti selektor untuk memilih piranti yang akan digunakan untuk berkomunikasi [16].

Komunikasi SPI bersifat synchronous (komunikasi sinkron). Clock memberikan sinyal yang berosilasi yang memberitahu penerima untuk mengambil bit pada jalur data.

Clock ini bisa berupa pinggiran positif (rendah ke tinggi) ataupun pinggiran negatif (tinggi ke rendah). Saat penerima mendeteksi pinggiran tersebut, penerima secara otomatis akan membaca bit selanjutnya pada jalur data [16].

Komunikasi SPI menggunakan setidaknya 5 buah pin sebagai berikut [17]. 1. MOSI (Master Out Slave In) 4. SS (Slave Select)

2. MISO (Master In Slave Out) 5. GND (Ground) 3. SCK (Serial Clock)

Data master dikeluarkan melalui pin MOSI master dan diterima oleh pin MOSI

Pin SCK master mengeluarkan clock sinkron yang diterima slave melalui pin SCK miliknya. SS digunakan untuk mengaktifkan slave yang bersangkutan [17].

Dokumen terkait