• Tidak ada hasil yang ditemukan

Mikrokontroller ATMega 328 atau Arduino adalah sebuah nama produk desain sistem minimum mikrokontroler yang di buka secara bebas. Kelebihan dari arduino adalah Arduino mempunyai bahasa pemrograman sendiri, pemrograman yang digunakan adalah bahasa C yang telah dipermudah dengan fungsi-fungsi yang sederhana sehingga pemula pun bisa mempelajarinya dengan cukup mudah.

Arduino juga memiliki program yang namanya boot loader yang sudah di tanam pada mikrokontrolernya, boot loader ini sendiri berfungsi untuk menjembatani antara software compiler arduino dengan mikrokontrolernya yang berfungsi untuk mengontrol dalam bentuk yang kecil. Di sini mikrokontroler memiliki memori sendiri, serta proses-proses yang dapat berdiri sendiri, sehingga ketika dihubungkan dengan input dan output yang lain, pengguna juga dapat mengontrol alat tersebut.

Arduino UNO adalah sebuah papan mikrokontroler yang didasarkan pada ATmega328.

Arduino UNO mempunyai 14 pin data input /output (6 di antaranya dapat digunakan sebagai output PWM), 6 pin input analog, sebuah osilator Kristal 16 MHz, sebuah koneksi USB, sebuah power jack , sebuah ICSP header dan sebuah tombol reset. Arduino UNO mudah sangat mudah untuk dihubungkan ke sebuah komputer dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai untuk memulainya.

Arduino UNO adalah sebuah seri terakhir dari board Arduino USB dan model referensi untuk papan Arduino Arduino UNO R3 merupakan board mikrokontroler

yang didasarkan pada mikrokontroler jenis ATmega328. Konfigurasi bagian utama mikrokontroler dari Arduino Uno ditunjukkan pada Gambar 2.7 berikut ini.

Gambar 2.7 Konfigurasi Arduino Uno

Dari gambar 2.7 dijelaskan bahwa kofigurasi Arduino Uno yaitu sebagai berikut.

a. Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang digunakanuntuk komunikasi serial seperti pada RS-232, RS-422 dan RS-485.

b. 2KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan), digunakan oleh variable-variabel di dalam program.

c. 32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. Selain program, flash memory juga menyimpan bootloader. Bootloader adalah program inisialisasi yang ukurannya kecil, dijalankan oleh CPU saat daya dihidupkan. Setelah boot loader selesai dijalankan, berikutnya program di dalam RAM akan dieksekusi.

d. 1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak boleh hilang saat daya dimatikan. Tidak digunakan pada papan Arduino.

e. Central Processing Unit (CPU), bagian dari mikrokontroler untuk menjalankan setiap instruksi dari program.

f. Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan mengeluarkan data (output) digital atau analog.

Mikrokontroler ini memiliki beberapa fitur antara lain:

1. 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.

2. 32 x 8-bit register serba guna.

3. Kecepatan mencapai 16 MPS dengan clock 16 MHz.

4. 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2KB dari flash memori sebagai bootloader. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1 KB sebagai tempat penyimpanan data semi permanent karenaa EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.

5. Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.Mikrokontroler ATMega328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja.

Gambar 2.8 Pin Mikrokontroler Atmega 328

Konfigurasi pin ATMega 328 dengan kemasan 28 pin DIP (Dual Inline Package) dapat dilihat pada gambar di atas. Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin ATMega328 sebagai berikut : ATMega328 memiliki 3 buah PORT utama yaitu PORTB, PORTC, dan PORTD dengan total pin

input/output sebanyak 23 pin.[14] PORT tersebut dapat difungsikan sebagai input/output digital atau difungsikan sebagai periperal lainnya.

1. Port B

Port B merupakan jalur data 8 bit yang dapat difungsikan sebagai input/output. Selain itu PORTB juga dapat memiliki fungsi alternatif seperti di bawah ini.

a. ICP1 (PB0), berfungsi sebagai Timer Counter 1 input capture pin.

b. OC1A (PB1), OC1B (PB2) dan OC2 (PB3) dapat difungsikan sebagai keluaran PWM (Pulse Width Modulation).

c. MOSI (PB3), MISO (PB4), SCK (PB5), SS (PB2) merupakan jalur komunikasi SPI. Selain itu pin ini juga berfungsi sebagai jalur pemograman serial (ISP).

d. TOSC1 (PB6) dan TOSC2 (PB7) dapat difungsikan sebagai sumber clock input/output digital. Fungsi alternatif PORTC antara lain sebagai berikut.

a. ADC6 channel (PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi sebesar 10 bit. ADC dapat kita gunakan untuk mengubah input yang berupa tegangan analog menjadi data digital

b. I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada PORTC. I2C digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data tipe I2C seperti sensor kompas, accelerometer nunchuck.

3. Port D

Port D merupakan jalur data 8 bit yang masing-masing pin-nya juga dapat difungsikan sebagai input/output. Sama seperti Port B dan Port C, Port D juga memiliki fungsi alternatif dibawah ini.

a. USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data

serial, sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsiuntuk menerima data serial.

b. Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari program, misalkan pada saat program berjalan kemudian terjadi interupsi hardware/software maka program utama akan berhenti dan akan menjalankan program interupsi.

c. XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu membutuhkan external clock.

d. T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan timer 0.

e. AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comparator.

Hanya dengan menghubungkannya ke sebuah komputer melalui USB atau memberikan tegangan DC dari baterai atau adaptor AC ke DC sudah dapat membuanya bekerja.[15]

2.7.1 Pin Masukan dan Keluaran

Masing-masing dari 14 pin digital arduino uno dapat digunakan sebagai masukan atau keluaran menggunakan fungsi pinMode(), digitalWrite() dan digitalRead(). Setiap pin beroperasi pada tegangan 5 volt. Setiap pin mampu menerima atau menghasilkan arus maksimum sebasar 40 mA dan memiliki 10 resistor pull-up internal (diputus secara default) sebesar 20-30 KOhm. Sebagai tambahan, beberapa pin masukan digital memiliki kegunaan khusus yaitu:

Komunikasi serial: pin 0 (RX) dan pin 1 (TX), digunakan untuk menerima(RX) dan mengirim(TX) data secara serial.

External Interrupt: pin 2 dan pin 3, pin ini dapat dikonfigurasi untuk memicu sebuah interrupt pada nilai rendah, sisi naik atau turun, atau pada saat terjadi perubahan nilai.

Pulse-width modulation (PWM): pin 3,5,6,9,10 dan 11, menyediakan keluaran PWM 8-bit dangan menggunakan fungsi analogWrite().

Serial Peripheral Interface (SPI): pin 10 (SS), 11 (MOSI), 12 (MISO) dan 13 (SCK), pin ini mendukung komunikasi SPI dengan menggunakan SPI library.

LED: pin 13, terdapat built-in LED yang terhubung ke pin digital 13. Ketika pin bernilai HIGH maka LED menyala, sebaliknya ketika pin bernilai LOW maka LED akan padam.

Arduino Uno memiliki 6 masukan analog yang diberi label A0 sampai A5, setiap pin menyediakan resolusi sebanyak 10 bit (1024 nilai yang berbeda). Secara default pin mengukur nilai tegangan dari ground (0V) hingga 5V, walaupun begitu dimungkinkan untuk mengganti nilai batas atas dengan menggunakan pin AREF dan fungsi analogReference(). Sebagai tambahan beberapa pin masukan analog memiliki fungsi khusus yaitu pin A4 (SDA) dan pin A5 (SCL) yang digunakan untuk komunikasi Two Wire Interface (TWI) atau Inter Integrated Circuit (I2C) dengan menggunakan Wire library.

2.7.2 Sumber Daya dan Pin Tegangan

Arduino uno dapat diberi daya melalui koneksi USB (Universal Serial Bus) atau melalui power supply eksternal. Jika arduino uno dihubungkan ke kedua sumber daya tersebut secara bersamaan maka arduino uno akan memilih salah satu sumber daya secara otomatis untuk digunakan. Power supplay external (yang bukan melalui USB) dapat berasal dari adaptor AC ke DC atau baterai. Adaptor dapat dihubungkan ke soket power pada arduino uno. Jika menggunakan baterai, ujung kabel yang dibubungkan ke baterai dimasukkan kedalam pin GND dan Vin yang berada pada konektor POWER.

Arduino uno dapat beroperasi pada tegangan 6 sampai 20 volt. Jika arduino uno diberi tegangan di bawah 7 volt, maka pin 5V akan menyediakan tegangan di bawah 5 volt dan arduino uno munkin bekerja tidak stabil. Jika diberikan tegangan melebihi 12 volt, penstabil tegangan kemungkinan akan menjadi terlalu panas dan merusak arduino uno. Tegangan rekomendasi yang diberikan ke arduino uno berkisar antara 7 sampai 12 volt.

Pin-pin tegangan pada arduino uno adalah sebagai berikut:

a. Vin adalah pin untuk mengalirkan sumber tegangan ke arduino uno ketika menggunakan sumber daya eksternal (selain dari koneksi USB

atau sumber daya yang teregulasi lainnya). Sumber tegangan juga dapat disediakan melalui pin ini jika sumber daya yang digunakan untuk arduino uno dialirkan melalui soket power.

b. 5V adalah pin yang menyediakan tegangan teregulasi sebesar 5 volt berasal dari regulator tegangan pada arduino uno.

c. 3V3 adalah pin yang meyediakan tegangan teregulasi sebesar 3,3 volt berasal dari regulator tegangan pada arduino uno.

d. GND adalah pin ground.

2.7.3 Arduino IDE

Arduino IDE Arduino adalah perangkat lunak IDE (Integrated Development Environment). Sebuah perangkat lunak yang memudahkan kita mengembangkan aplikasi mikrokontroler mulai dari menuliskan source program, kompilasi, upload hasil kompilasi, dan uji coba secara terminal serial. Arduino ini bisa dijalankan di komputer dengan berbagai macam platform karena didukung atau berbasis Java.

Source program yang kita buat untuk aplikasi mikrokkontroler adalah bahasa C/C++

dan dapat digabungkan dengan assembly.

Gambar 2.9 Logo Arduino

Gambar 2.10 Tampilan Arduino IDE

Pada tampilan Arduino IDE terdapat tiga jendela yaitu menu, tombol icon, eitor dan pesan. Pada bagian bawah terlihat jenis mikrokontroler atau board arduino saat ini yaitu Board Arduino BT dengan mikrokontroler 328 dengan menggunakan kanal serial COM7 untuk upload hasil kompilasi dan koomunikasi konsole serial.

Arduino sangat kaya dengan library karena arduino sifatnya adalah opensoource.

Selain arduino IDE sebagai jantungnya, bootloader adalah jantung arduino lainnya yang berupa program kecil yang dieksekusi sesaat setelah mikrokontroler diberi catu daya. Bootloader ini berfungsi sebagai pemonitor aktifitas yang diiginkan oleh arduino. Jika dalam IDE terdapat file hasil kompilasi yang akan diupload, bootloader secara otomatis menyambutnya untuk disimpan dalam memori program. Jika pada saat awal mikrokontroler bekerja, bootloader akan mengeksekusi program aplikasi yang telah diupload sebelumnya. Jika IDE hendak mengupload program baru, bootloader seketika akan menghentikan eksekusi program berganti menerima data program untuk selanjutnya diprogramkan dalam memori program mikrokontroler.[16]

Dokumen terkait