Rabu, 19 November 2014

Mikrokontroler Arduino Uno


Pengertian Mikrokontroler
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output.
Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. (http://www.kelas-mikrokontrol)

Arduino
Arduino merupakan rangkaian elektronik yang bersifat open source, serta memiliki perangkat keras dan lunak yang mudah untuk digunakan. Arduino dapat mengenali lingkungan sekitarnya melalui berbagai jenis sensor dan dapat mengendalikan lampu, motor, dan berbagai jenis aktuator lainnya. Arduino mempunyai banyak jenis, di antaranya Arduino Uno, Arduino Mega 2560, Arduino Fio, dan lainnya. (www.arduino.cc)

Arduino Uno

Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan komputer menggunakan kabel USB..(FeriDjuandi, 2011)



Gambar 2.3. Board Arduino Uno
Apakah arduino?, Menurut (FeriDjuandi, 2011) Arduino adalah merupakan sebuah board minimum system mikrokontroler yang bersifat open source. Didalam rangkaian board arduino terdapat mikrokontroler AVR seri ATMega 328 yang merupakan produk dari Atmel.
Arduino memiliki kelebihan tersendiri disbanding board mikrokontroler yang lain selain bersifat open source, arduino juga mempunyai bahasa pemrogramanya sendiri yang berupa bahasa C. Selain itu dalam board arduino sendiri sudah terdapat loader yang berupa USB sehingga memudahkan kita ketika kita memprogram mikrokontroler didalam arduino. Sedangkan pada kebanyakan board mikrokontroler yang lain yang masih membutuhkan rangkaian loader terpisah untuk memasukkan program ketika kita memprogram mikrokontroler. Port USB tersebut selain untuk loader ketika memprogram, bisa juga difungsikan sebagai port komunikasi serial.
Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board kita bisa lihat pin digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19. dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16.
Sifat open source arduino juga banyak memberikan keuntungan tersendiri untuk kita dalam menggunakan board ini, karena dengan sifat open source komponen yang kita pakai tidak hanya tergantung pada satu merek, namun memungkinkan kita bisa memakai semua komponen yang ada dipasaran.
Bahasa pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami mikrokontroller.
Deskripsi Arduio UNO:
                                                                Tabel Deskripsi Arduino Uno
                                                             (Sumber: http://www.arduino.cc)

Power
Arduino dapat diberikan power melalui koneksi USB atau power supply. Powernya diselek secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 sampai 12 volt.
Penjelasan pada pin power adalah sebagai berikut :
·  Vin
Tegangan input ke board arduino ketika menggunakan tegangan dari luar (seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini.
·  5V
Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau supply regulasi 5V lainnya.
·  3V3
Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya adalah 50mA
·  Pin Ground
berfungsi sebagai jalur ground pada arduino
·  Memori
ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM.

Input & Output
Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 20-50K Ohm.
Beberapa pin memiliki fungsi sebagai berikut :

·  Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang koresponding dari USB  ke TTL chip serial.
·  Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interap pada low value, rising atau falling edge, atau perubahan nilai.
·  PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi analogWrite().
·  SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino.
·  LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati.

Komunikasi
Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lain. ATmega328 ini menyediakan UART TTL (5V) komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1 (TX).  Firmware Arduino menggunakan USB driver standar COM, dan tidak ada driver eksternal yang dibutuhkan. Namun, pada Windows, file. Ini diperlukan. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data sederhana yang akan dikirim ke board Arduino. RX dan TX LED di board akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dan koneksi USB ke komputer.

Software Arduino
Arduino Uno dapat diprogram dengan perangkat lunak Arduino . Pada ATMega328 di Arduino terdapat bootloader yang memungkinkan Anda untuk meng-upload kode baru untuk itu tanpa menggunakan programmer hardware eksternal.
            IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java. IDE Arduino terdiri dari:
1.         Editor program, sebuah window yang memungkinkan pengguna menulis dan mengeditprogram dalam bahasa Processing.
2.        Compiler, sebuah modul yang mengubah kode program (bahasa Processing) menjadi kode biner. Bagaimanapun sebuah mikrokontroler tidak akan bisa memahami bahasa Processing. Yang bisa dipahami oleh mikrokontroler adalah kode biner. Itulah sebabnya compiler diperlukan dalam hal ini.
3.        Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memory didalam papan Arduino.
Sebuah kode program Arduino umumnya disebut dengan istilah sketch. Kata“sketch” digunakan secara bergantian dengan “kode program” dimana keduanya memiliki arti yang sama. (http://www.arduino.cc)



(http://www.arduino.cc)
Gambar Tampilan IDE Arduino dengan sebuah sketch


Bahasa Pemograman Arduino Berbasis Bahasa C
Seperti yang telah dijelaskan diatas program Arduino sendiri menggunakan bahasa C.  walaupun banyak sekali terdapat bahasa pemrograman tingkat tinggi (high level language) seperti pascal, basic, cobol, dan lainnya. Walaupun demikian, sebagian besar dari paraprogramer profesional masih tetap memilih bahasa C sebagai bahasa yang lebih unggul, berikut alasan-alasannya:
·         Bahasa C merupakan bahasa yang powerful dan fleksibel yang telah terbukti dapat menyelesaikan program-program besar seperti pembuatan sistem operasi, pengolah gambar (seperti pembuatan game) dan juga pembuatan kompilator bahasa pemrograman baru.
·         Bahasa C merupakan bahasa yang portabel sehingga dapat dijalankan di beberapa sistem operasi yang berbeda. Sebagai contoh program yang kita tulis dalam sistem operasi windows dapat kita kompilasi didalam sistem operasi linux dengan sedikit ataupun tanpa perubahan sama sekali.
·         Bahasa C merupakan bahasa yang sangat populer dan banyak digunakan oleh programer berpengalaman sehingga kemungkinan besar library pemrograman telah banyak disediakan oelh pihak luar/lain dan dapat diperoleh dengan mudah.
·         Bahasa C merupakan bahasa yang bersifat modular, yaitu tersusun atas rutin-rutin tertentu yang dinamakan dengan fungsi (function) dan fungsi-fungsi tersebut dapat digunakan kembali untuk pembuatan program-program lainnya tanpa harus menulis ulang implementasinya.
·         Bahasa C merupakan bahasa tingkat menengah (middle level language) sehingga mudah untuk melakukan interface (pembuatan program antar muka) ke perangkat keras.
·         Struktur penulisan program dalam bahasa C harus memiliki fungsi utama, yang bernama main(). Fungsi inilah yang akan dipanggil pertama kali pada saat proses eksekusi program. Artinya apabila kita mempunyai fungsi lain selain fungsi utama, maka fungsi lain tersebut baru akan dipanggil pada saat digunakan.
Oleh karena itu bahasa C merupakan bahasa prosedural yang menerapakan konsep runtutan (program dieksekusi per baris dari atas ke bawah secara berurutan), maka apabila kita menuliskan fungsi-fungsi lain tersebut dibawah fungsi utama, maka kita harus menuliskan bagian prototipe (prototype), hal ini dimaksudkan untuk mengenalkan terlebih dahulu kepada kompiler daftar fungsi yang akan digunakan di dalam program. Namun apabila kita menuliskan fungsi-fungsi lain tersebut diatas atau sebelum fungsi utama, maka kita tidak perlu lagi untuk menuliskan bagian prototipe diatas. (Djuandi, Feri. (2011) )
Selain itu juga dalam bahasa C kita akan mengenal file header, biasa ditulis dengan ekstensi h(*.h), adalah file bantuan yang yang digunakan untuk menyimpan daftar-daftar fungsi yang akan digunakan dalam program. Bagi anda yang sebelumnya pernah mempelajari bahasa pascal, file header ini serupa dengan unit. Dalam bahasa C, file header standar yang untuk proses input/output adalah <stdio.h>.
Perlu sekali untuk diperhatikan bahwa apabila kita menggunakan file header yang telah disediakan oleh kompilator, maka kita harus menuliskannya didalam tanda‘<’ dan ‘>’ (misalnya <stdio.h>). Namun apabila menggunakan file header yang kita buat sendiri, maka file tersebut ditulis diantara tanda “ dan ” (misalnya “cobaheader.h”). perbedaan antara keduanya terletakpada saat pencerian file tersebut. Apabila kita menggunakan tanda <>, maka file tersebut dianggap berada pada direktori deafault yang telah ditentukan oleh kompilator. Sedangkan apabila kita menggunakan tanda “”, maka file header dapat kita dapat tentukan sendiri lokasinya.
File header yang akan kita gunakan harus kita daftarkan dengan menggunakan directive #include. Directive #include ini berfungsi untuk memberi tahu kepada kompilator bahwa program yang kita buat akan menggunakan file-file yang didaftarkan. Berikut ini contoh penggunaan directive #include.
#include<stdio.h>
#include<stdlib.h>
#include”myheader.h”
Setiap kita akan menggunakan fungsi tertentu yang disimpan dalam sebuah file header, maka kita juga harus mendaftarkan file headernya dengan menggunakan directive #include. Sebagai contoh, kita akan menggunakan fungsi getch() dalam program, maka kita harus mendaftarkan file header<conio.h>.

Sumber:www.arduino.cc
            

22 komentar:

  1. Pengaplikasiannya sprti ap?
    mksih ilmunya tp masih kurang paham'. Ribet bgt kayaknya,

    BalasHapus
  2. Pengaplikasiannya sprti ap?
    mksih ilmunya tp masih kurang paham'. Ribet bgt kayaknya,

    BalasHapus
  3. Kalo dalam 1 program terdapat beberapa #include, #include tersebut apa harus diupload 1 per 1 ato cukup sekali upload program (sudah termasuk beberapa #include) tersebut? Trims

    BalasHapus
    Balasan
    1. bantu jawab aja, kalau misalnya ada banyak #include tapi masih dalam satu program maka proses uploadnya cukup sekali aja kak gausah berkali-kali.

      Hapus
  4. arduino bisa memprogram apa saja ya min?

    BalasHapus
    Balasan
    1. untuk referensi kodingan arduino bisa liat di instrucstable aja kak atau di forum arduinonya langsung.

      Hapus
  5. Gan cara menggunakan digital pin 0 dan 1 ke pin input modul relay gimana?kok gk bisa ya? Cuman 2 pin itu doang yg gk bisa yg lainnya bisa semua..terima kasih jika berkenan menjawabnya.. :)

    BalasHapus
  6. Gan cara menggunakan digital pin 0 dan 1 ke pin input modul relay gimana?kok gk bisa ya? Cuman 2 pin itu doang yg gk bisa yg lainnya bisa semua..terima kasih jika berkenan menjawabnya.. :)

    BalasHapus
    Balasan
    1. menurut saya pribadi,
      pin 0 dan 1 untuk serial komunikasi arduino dengan modul atau sebagainya

      pin 0 = RX (receiver)
      pin 1 = TX (transmiter)

      Hapus
  7. apa arduno bisa di program lebih dari 2 program, misal 6 program sekaligus

    BalasHapus
  8. kalau kita membuat power suplay dengan adaptor dan baterai gimana,jadi kalau adaptor nyala maka baterai tidak d gunakan dan ketika adaptor mati,power suplay y pindah ke baterai gimana ya...?

    BalasHapus
    Balasan
    1. bantu jawab,
      pakai arduino juga bisa, tapi kemahalan jika digunakan untuk itu.

      coba aja pakai relay yang NC(normaly close) dan NO(normaly open) yang ada dua.
      jadi,,, jika di relay diberi arus, maka NO akan terhubung. atau sebaliknya
      jika tidak ada arus, maka NC akan terhubung

      Hapus
  9. mengendalikan kipas agin menggunakan arduino uno apakah itu juga bisa?

    BalasHapus
  10. Satu unit arduino bisa buat brapa progam?

    BalasHapus
  11. Min kalo buat projek baru apakah harus beli arduino lagi?

    BalasHapus