Deprecated: Required parameter $output follows optional parameter $depth in /home/pkaykstj/andiandaria.trinita.ac.id/wp-content/themes/jannah/framework/classes/class-tielabs-mega-menu.php on line 451
Pertemuan 3 (Hardware dan Software Mikrokontroler AVR dan Arduino – 1) – Charissa
Periferal dan Antarmuka

Pertemuan 3 (Hardware dan Software Mikrokontroler AVR dan Arduino – 1)

DAFTAR ISI
2.1 Mikrokontroler AVR
2.1.1 Arsitektur
2.1.2 Memori

2.2 Arduino Board

2.3 Algoritma Pemrograman
2.3.1 Definisi Algoritma
2.3.2 Program
2.3.3 Perbedaan interpreter dan compiler
2.3.4 Penulisan Algoritma


TUJUAN PEMBELAJARAN
1. Peserta Didik mampu menjelaskan tentang mikrokontroler AVR.
2. Peserta Didik mampu menjelaskan tentang Arduino.
3. Peserta Didik mampu menguraikan jenis bahasa pemprograman mikrokontroler.
4. Peserta Didik mampu mencontohkan pengaplikasian sintak dasar bahasa pemprograman C.

2.1 Mikrokontroler AVR
Mikrokontroler AVR (Alf and Vegards Risc processor) dari Atmel ini menggunakan arsitektur RISC (Reduced Instruction Set Computer) yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit dibandingkan dengan MCS-51 yang menerapkan arsitektur CISC (Complex Instruction Set Computer).

Gambar 2.1: Mikrokontroller AVR

Hampir semua instruksi prosesor RISC adalah instruksi dasar (belum tentu sederhana), sehingga instruksi-instruksi ini umumnya hanya memerlukan 1 siklus mesin untuk menjalankannya. Kecuali instruksi percabangan yang membutuhkan 2 siklus mesin.

RISC biasanya dibuat dengan arsitektur Harvard, karena arsitektur ini yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam satu atau dua siklus mesin, sehingga akan semakin cepat dan handal. Proses downloading programnya relatif lebih mudah karena dapat dilakukan langsung pada sistemnya.

Sekarang ini, AVR dapat dikelompokkan menjadi 6 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATmega, keluarga AT90CAN, keluarga AT90PWM dan AT86RFxx.

Pada dasarnya yang membedakan masingmasing kelas adalah memori, peripheral, dan fungsinya, sedangkan dari segi arsitektur dan instruksi yang digunakan hampir sama.

2.1.1 Arsitektur
Mikrokontroler AVR RISC(Reduced instruction set computing atau Komputasi set instruksi yang disederhanakan pertama kali digagas oleh John Cocke) adalah perangkat yang di desain untuk berjalan dengan cepat, dengan menggunakan instruksi mesin yang disederhanakan sehingga dapat meningkatkan kinerja dari mikrokontroler. Sebelum ada RISC, namanya CISC(Complex sInstruction Set Computers).

Dengan pengunaan instruksi yang lebih sederhana memberikan konstribusi pada kecepatan dengan instruksi mesin yang terbatas.

Mikrokontroler AVR RISC dapat berjalan pada single cycle dari prosesor clock, yang berarti Mikrokontroler AVR dengan clock 8 MHz, dapat mengeksekusi sekitar 8 juta instruksi perdetiknya atau 8 MIPS(million instruction per second).

2.1.2 Memori
Bagian memori dari mikrokontrol Atmel RISC AVR berbasis Harvard Model, yang mana memorinya terbagi sehingga dapat meningkatkan kecepatan akses dan meningkatkan kapasitas.

CPU membagi antarmuka untuk bagian kode memori FLASH, bagian memori data , dan memori EEPROM.

Memori FLASH memori FLASH merupakan blok dari memori FLASH yang dimulai dari lokasi 0x000 dan ukurannya tergantung dari mikrokontroler yang digunakan. Memori FLASH merupakan memori nonvolatile dan digunakan untuk menyimpan kode eksekusi dan konstanta, karena kode-kode tersebut akan digunakan kembali meskipun mikrokontroler tidak terhubung ke catu daya.

Non-volatile yaitu kode yang disimpan dalam memori tidak hilang meskipun mikrokontrol tidak dialiri listrik, ruang memori antara 16 bit pada setiap lokasi untuk menagani instruksi mesin yang khusunya single-16 bit word.

Memori Data Memori data Atmel AVR khasnya terdiri dari tiga bagian memori baca/tulis terpisah, yaitu :
bagian terendah terdiri dari 32 register kerja umum, yang diikuti oleh 64 register I/O, yang diikuti oleh internal SRAM.

32 register kerja umum digunakan untuk menyimpan variabel lokal dan data temporal yang digunakan oleh program saat dieksusi, dapat juga digunakan untuk penyimpanan data variabel global.

64 register I/O digunakan sebagai antarmuka untuk perangkat I/O dan peripheral yang berada di papan mikrokontroler.

Internal SRAM digunakan sebagai area penyimpanan variable umum dan juga untuk prosessor stack.

Register-register, Register kerja umum menempati 32 sel terndah dalam data memori. register ini kebanyakan digunakan seperti data penyimpanan dalam kalkulator yang mana hanya disimpan sementara.

Terkadang digunakan untuk menyimpan variable lokal, dan terkadang variable global, dan terkadang sebagai pengarah ke memori yang digunakan oleh prosessor.

Singkatnya prosessor menggunakan 32 register kerja sebagaimana program dieksekusi.

Register I/O, Setiap regiter memberikan akses ke register kontrol atau ke register data I/O peripheral yang berada dalam mikrokontroler. Programer lebioh sering menggunakan I/O register untuk mengantarmuka ke peripheral I/O dari mikrokontroler.

Ukuran Register I/O tergantung dari perangkat. setiap register I/O memiliki nama, sebuah alamat I/O, dan alamat SRAM.

SRAM , Bagian SRAM dari memori digunakan untuk menyimpan variabel yang tidak dapat disimpan kedalam register dan untuk menyimpan prosessor satck.

Memori EEPROM bagian memori EEPROM adalah area memori baca/tulis yang non volatile. ini biasanya digunakan untuk menyimpan data yang tidak boleh hilang saat catu daya dilepas (mikrokontroler dimatikan) dan dipasang kembali (mikrokontroler dinyalakan).

Ruang EEPROM dimulai dari 0x000 dan ke nilai maksimum tergantung spesifikasi mikrontroler yang digunakan.

2.2 Arduino Board
Arduino merupakan papan rangkaian sistem minimum mikrokontroler yang memang dirancang untuk bisa digunakan dengan mudah oleh para seniman dan desainer (yang memang bukan orang teknik).

Dengan demikian, tanpa mengetahui bahasa pemrograman, Arduino bisa digunakan untuk menghasilkan karya yang canggih.

Gambar 2.2: Arduino Board

Menggunakan Arduino sangatlah membantu dalam mebuat suatu prototyping ataupun untuk melakukan pembuatan proyek. Arduino memberikan I/O yang sudah fix dan bisa digunakan dengan mudah.

Arduino dapat digabungkan dengan modul elektro yang lain sehingga proses perakitan jauh lebih efisien. Para desainer hanya tinggal membuat software untuk mendayagunakan rancangan H/D yang ada. Software jauh lebih mudah untuk dimodifikasi tanpa memindahkan kabel.

Saat ini arduino sangat mudah dijumpai dan ada beberapa perusahaan yang mengembangkan sistem H/D open source ini.

Pengembangan – pengembangan tersebut antara lain:

  • Arduino : http://www.arduino.cc/
  • I-CubeX : http://www.infusionsystems.com/
  • Arieh Robot Project Junior : http://www.arobotineveryhome.com/
  • Dwengo : http://www.dwenfo.org/
  • EmbeddedLab : http:/www.embedded.arch.ethz.ch/
  • GP3 : http://www.awce.com/gp3.htm/

Di antara pengembang-pengambang yang ada, Arduino merupakan salah satu pengambang yang banyak digunakan. Pada Materi ini, kita akan menggunakan produk pengembang dari Arduino.

Keistimewaan arduino adalah hardware yang open source. Hal ini sangatlah memberi keleluasan bagi pengguna untuk bereksperiment secara bebas dan gratis.

Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang.

Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri (Arduino IDE). Saat ini Arduino sangat populer di seluruh dunia.

Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan Arduino.

Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino. Dan seperti Microcontroller yang banyak jenisnya, Arduino lahir dan berkembang, kemudian muncul dengan berbagai jenis. Diantaranya adalah:

  1. Arduino Uno Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula sangat disarankan untuk menggunakan Arduino Uno. Dan banyak sekali referensi yang membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3), menggunakan ATMEGA328 sebagai Microcontrollernya, memiliki 14 pin I/O digital dan 6 pin input analog. Untuk pemograman cukup menggunakan \ koneksi USB type A to To type B. Sama seperti yang digunakan pada USB printer.
  2. Arduino Due Berbeda dengan saudaranya, Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi ARM Cortex CPU. Memiliki 54 I/O pin digital dan 12 pin input analog. Untuk pemogramannya menggunakan Micro USB, terdapat pada beberapa handphone.
  3. Arduino Mega Arduino Mega Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk pemogramannya. Tetapi Arduino Mega, menggunakan Chip yang lebih tinggi ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak dari Uno.
  4. Arduino Leonardo Bisa dibilang Leonardo adalah saudara kembar dari Uno. Dari mulai jumlah pin I/O digital dan pin input Analognya sama. Hanya pada Leonardo menggunakan Micro USB untuk pemogramannya.
  5. Arduino Fio Bentuknya lebih unik, terutama untuk socketnya. Walau jumlah pin I/O digital dan input analognya sama dengan uno dan leonardo, tapi Fio memiliki Socket XBee. XBee membuat Fio dapat dipakai untuk keperluan projek yang berhubungan dengan wireless.
  6. Arduino Lilypad Bentuknya yang melingkar membuat Lilypad dapat dipakai untuk membuat projek unik. Seperti membuat amor iron man misalkan. Hanya versi lamanya menggunakan ATMEGA168, tapi masih cukup untuk membuat satu projek keren. Dengan 14 pin I/O digital, dan 6 pin input analognya.
  7. Arduino Nano Sepertinya namanya, Nano yang berukulan kecil dan sangat sederhana ini, menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari Uno). Dan ada yang menggunakan ATMEGA168, atau ATMEGA328.
  8. Arduino Mini Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro USB untuk pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.
  9. Arduino Micro Ukurannya lebih panjang dari Nano dan Mini. Karena memang fasilitasnya lebih banyak yaitu; memiliki 20 pin I/O digital dan 12 pin input analog.
  10. Arduino Ethernet Ini arduino yang sudah dilengkapi dengan fasilitas ethernet. Membuat Arduino kamu dapat berhubungan melalui jaringan LAN pada komputer. Untuk fasilitas pada Pin I/O Digital dan Input Analognya sama dengan Uno.
  11. Arduino Esplora Rekomendasi bagi kamu yang mau membuat gadget sepeti Smartphone, karena sudah dilengkapi dengan Joystick, button, dan sebagainya. Kamu hanya perlu tambahkan LCD, untuk lebih mempercantik Esplora.
  12. Arduino Robot Ini adalah paket komplit dari Arduino yang sudah berbentuk robot. Sudah dilengkapi dengan LCD, Speaker, Roda, Sensor Infrared, dan semua yang kamu butuhkan untuk robot sudah ada pada Arduino ini.

Pembahasan pada Materi ini menggunakan arduino jenis Arduino UNO. Arduino UNO adalah jenis arduino yang paling populer digunakan dikalangan pelajar maupun kalangan umum.

Berikut ini adalah perangkat keras arduino dengan fungsi dari masin-masing bagiannya.

Gambar 2.3: Arduino UNO

2.3 Algoritma Pemrograman
Dalam pembuatan sebuah program menurut Saputra (2015) terdapat 7 langkah umum yaitu:

  1. Mendefinisikan masalah, Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program.
  2. Mencari solusi, Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
  3. Menentukan algoritma, Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.
  4. Menulis program, Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.
  5. Menguji program, Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.
  6. Mendokumentasikan program, Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi).
  7. Merawat program, Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program.

Dari penjelasan diatas, dapat kita peroleh kesimpulan bahwa pembelajaran algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program.

Untuk lebih jelasnya tentang algoritma pemrograman akan diulas sebagai berikut :

2.3.1 Definisi Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.

Algoritma adalah urutan langkah – langkah berhingga untuk memecahkan masalah logika atau matematika.

Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.

Menurut E. Knuth (2011) dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting :

  1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas (berhingga)
  2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous)
  3. Algoritma memiliki nol atau lebih masukan (input)
  4. Algoritma mempunya nol atau lebih keluaran (output)
  5. Algoritma harus efektif dan efisien.

2.3.2 Program
Agar dapat dilaksanakan oleh pemproses, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam
bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh pemproses.

Kata algoritma dan kata program seringkali dipertukarkan dalam penggunaannya. Algoritma adalah urutan langkah-langkah penyelesaian masalah sedangkan Program adalah realisasi algoritma dalam bahasa pemrograman. Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program disebut pemrograman (programming).

Orang yang menulis program disebut programmer. Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan oleh pemproses.

Secara garis besar perangkat yang membutuhkan alogaritma tersusun atas empat komponen utama, yakni:

  1. piranti masukan berfungsi untuk memasukkan data atau program ke dalam memori
  2. piranti keluaran berfungsi untuk menampilkan hasil dari eksekusi program
  3. unit pemroses utama berfungsi mengerjakan operasi-operasi dasar
  4. memori berfungsi untuk menyimpan program dan data atau informasi.

Proses Eksekusi Program, mekanisme eksekusi sebuah program adalah program disimpan di dalam memori melalui piranti masukan.

Ketika sebuah program dieksekusi maka setiap instruksi program akan dikirim dari memori ke unit pemroses utama. Unit pemroses utama kemudian akan menjalankan operasi sesuai instruksi-instruksi yang dibaca.

Apabila sebuah instruksi membutuhkan data masukan, maka piranti masukan akan membaca data masukan, mengirimkan ke memori kemudian mengirimkan ke unit pemroses utama untuk diproses.

Apabila eksekusi program menghasilkan data keluaran, maka data keluaran akan disimpan di dalam memori, kemudian dikirim ke piranti keluaran.

2.3.3 Perbedaan interpreter dan compiler

Interpreter:

  1. Menerjemahkan instruksi per instruksi.
  2. Source program tidak harus ditulis lengkap.
  3. Bila terjadi kesalahan instruksi, dapat langsung diperbaiki secara interaktif.
  4. Tidak menghasilkan objek program
  5. Pemrosesan program lebih lambat, karena setiap instruksi yang dikerjakan harus diinterpretasi ulang.
  6. Source code program terus dipergunakan.

Compiler:

  1. Menerjemahkan secara keseluruhan.
  2. Source program harus ditulis lengkap.
  3. Bila terjadi kesalahan dalam kompilasi, source program harus dibenarkan dan proses kompilasi diulang kembali.
  4. Menghasilkan objek program.
  5. Pemrosesan program lebih cepat, karena program sudah dalam bahasa mesin.
  6. Source code program dipergunakan satu kali saat kompilasi program.

2.3.4 Penulisan Algoritma
Pada umumnya terdapat tiga jenis cara penulisan algoritma, yakni :

Cara Deskriktif
Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas.

Contohnya : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Pertanyaan??? ->Carilah bilangan bulat maksimum di antara ketiga bilangan tersebut.
Deskripsi :

  • baca bilangan 1.
  • baca bilangan 2.
  • bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan sebut bilangan tersebut MAX.
  • baca bilangan 3.
  • bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX.
  • keluarkan sebagai output MAX

Pseudocode
Pseudocode adalah notasi yang menyerupai bahasa pemrograman tingkat tinggi.

Keuntungan menggunakan notasi pseudocode adalah memberikan kemudahan bagi programmer untuk menerjemahkan ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudocode dengan notasi bahasa pemrograman.

Flowchart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-rutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.

Bila seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti:

  • Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
  • Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
  • Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
  • Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja.
  • Setiap langkah dari aktivitas harus berada pada urutan yang benar
  • Gunakan simbol-simbol flowchart yang standar.

Simbol-simbol yang sering digunakan dalam flowchart antara lain:

Gambar 2.4: Simbol Flowchart dan Kegunaannya

TUGAS FORMATIF
1. Jelaskan apa itu mikrokontroler AVR?
2. Jelaskan apa itu Arduino?

DAFTAR PUSTAKA

  1. Adrianto, H.: 2013, Pemrograman Mikrokontroler AVR ATmega16 Menggunakan Bahasa C (CodeVisionAVR), Informatika bandung, Bandung.
  2. Adrianto, H.: 2015, Pemrograman Mikrokontroler AVR ATmega16 Menggunakan Bahasa C (CodeVisionAVR), Informatika bandung, Bandung.
  3. E. Knuth, D.: 2011, The Art of Computer Programing, Addison Wesley, United States.
  4. Fahmizal: 2011, Jenis dan Tipe Motor Servo. URL: https://fahmizaleeits.wordpress.com/
  5. Fauzi, F. A.: 2015, Downloader). URL: https://fajarahmadfauzi.wordpress.com/
  6. Grupta, M.: 2012, Perkenalan Seputar Mikrokontroler. URL: https://guptayp.wordpress.com/
  7. Iswanto: 2011, Belajar Mikrokontroler AT89S51 dengan Bahasa C, CV Andi Offset, Yogyakarta.
  8. Kadir, A.: 2015, Buku Pintar Pemrograman Arduino, MediaKom, Yogyakarta.
  9. Marta Dinata, Yuwono: 2015, Arduino Itu Mudah, PT Alex Media Komputindo, Jakarta.
  10. Rachmat, O.: 2012, Panduan Praktis Membuat Robotik dengan Pemrograman C++, CV Andi Offset, Yogyakarta.
  11. Rangkuti, S.: 2011, Mikrokontroler Atmel AVR Simulasi dan Praktik Menggunakan ISIS Proteus dan CodeVisionAVR, Informatika Bandung, Bandung.
  12. Saputra, E.: 2015, Materi dasar Algoritma dan Pemograman. URL: https://suhaebiebi40.wordpress.com/
  13. Spurianto: 2015, Pengertian Push Button Switch (Saklar Tombol Tekan)). URL: http://blog.unnes.ac.id/
  14. Syahrul: 2012, Mikrokontroler AVR ATmega8535, Informatika Bandung, Bandung.
  15. syarif, m.: 2014, Serial Pheripheral Interface (SPI) dan Universal Synchronous Asynchronous Receiver Transmitter (USART). URL: http://muhammadsyarif.ilearning.me/
  16. Wangready: 2012, Kendali Motor Servo Menggunakan PWM dari Timer). URL: https://wangready.wordpress.com/
  17. zonaelektro.net: 2014, ADC (Analog To Digital Converter). URL: http://zonaelektro.net/adc-analog-to-digital-converter/

Related Articles

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Back to top button