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 danatau 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].
Gambar 2.6. Komunikasi I2C [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 ReadWrite 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
slave . Data slave dikeluarkan melalui pin MISO slave dan diterima oleh pin MISO master.
Pin SCK master mengeluarkan clock sinkron yang diterima slave melalui pin SCK miliknya. SS digunakan untuk mengaktifkan slave yang bersangkutan [17].
2.5. RTC Real Time Clock
RTC Real Time Clock merupakan IC integrated circuit yang memiliki peran sebagai jam elektronik. RTC memiliki memori untuk menyimpan waktu berupa detik,
menit, jam, hari, tanggal, bulan, dan tahun pada registernya. Salah satu contoh RTC adalah DS1307.
Merujuk pada datasheet, RTC DS1307 dapat dioperasikan melalui komunikasi I2C melalui mikrokontroler. Saat dioperasikan atau dibaca DS1307 akan mengirimkan data
berupa sandi BCD Binary-Coded Decimal. Sandi BCD sendiri merupakan pengkodean bilangan desimal ke dalam kelompok angka biner.
RTC DS1307 memiliki 8 buah pin, memori 56 byte, dan juga pendeteksi kesalahan sumber daya. Pendeteksi kesalahan sumber daya yang dimaksud adalah saat
adanya kesalahan pada sumber tegangan VCC ke DS1307, DS1307 akan men-switch sumber tegangan baginya ke tegangan baterai secara otomatis. Berikut ini adalah
penampakan RTC DS1307.
Gambar 2.7. RTC DS1307 [18] Merujuk pada datasheet RTC DS1307, konfigurasi pin-pin tersebut adalah
sebagai berikut. V
CC
- Sumber Tegangan Utama X1, X2
- 32.768kHz Crystal V
BAT
- +3V Input Tegangan Baterai GND
- Ground SDA
- Serial Data