Modul Arduino Basic Rev

download Modul Arduino Basic Rev

of 44

Transcript of Modul Arduino Basic Rev

  • 7/21/2019 Modul Arduino Basic Rev

    1/44

    BAB 1.

    BAB 1. PENDAHULUAN.......................................................................................1

    1.1. APA ITU ARDUINO.................................................................................. 1

    1.2. SEJARAH ARDUINO.................................................................................1

    1.3. APLIKASI ARDUINO................................................................................2

    1.4. PERKEMBANGAN ARDUINO..................................................................3

    1.5. PERTANYAAN...........................................................................................6

    BAB 2. ARSITEKTUR MIKROKONTROLER AVR.................................................7

    2.1. OVERVIEW ARSITEKTUR MIKROKONTROLER AVR.............................7

    2.2. PENJELASAN FUNGSI PIN......................................................................9

    2.3. MEMORY MAP....................................................................................... 11

    2.4. RANGKAIAN BOARD ARDUINO...........................................................14

    2.5. PENJELASAN BOARD ARDUINO..........................................................15

    2.6. PERTANYAAN.........................................................................................17

    BAB 3. DASAR PEMROGRAMAN ARDUINO.....................................................18

    3.1. TAHAPAN PEMBUATAN PROGRAM......................................................18

    3.2. BAHASA PEMROGRAMAN....................................................................18

    3.3. STRUKTUR PENULISAN PROGRAM.....................................................19

    3.4. TIPE DATA.............................................................................................. 19

    3.5. BASIS ANGKA........................................................................................20

    3.6. PENYIMPANAN DATA............................................................................20

    3.7. OPERASI LOGIKA DAN BINER.............................................................20

    3.. OPERASI RELASIONAL !PERBANDINGAN".........................................20

    3.#. OPERASI ARITMATIKA..........................................................................21

    3.1$. STATEMENT........................................................................................21

    3.11. %ONDITIONAL STATEMENT..............................................................21

    3.12. FUN%TION.......................................................................................... 223.13. LATIHAN............................................................................................. 22

    BAB 4. PEMROGRAMAN DENGAN ARDUINO IDE...........................................24

    4.1. MEMBUAT PROGRAM...........................................................................24

    4.2. %OMPILE DAN DOWNLOAD KE %HIP..................................................27

    4.3. PEMROGRAMAN AVR UNTUK PORT I&O.............................................28

    4.4. KOMUNIKASI SERIAL...........................................................................30

    4.5. PEMROGRAMAN RELAY.......................................................................31

    4.6. MEMBUAT DELAY..................................................................................324.7. PEMROGRAMAN L%D...........................................................................33

  • 7/21/2019 Modul Arduino Basic Rev

    2/44

    4.. PEMROGRAMAN AD%...........................................................................35

    4.#. PEMROGRAMAN KEYPAD....................................................................36

    4.1$. PEMROGRAMAN PWM......................................................................38

    BAB 2.

  • 7/21/2019 Modul Arduino Basic Rev

    3/44

    BAB 3. PENDAHULUAN

    1.1.APA ITU ARDUINO

    Ada baiknya sebelum membahas mengenai Arduino kita mengerti dulu aa

    itu mikrokontroler. !ikrokontroler adalah single chip computer yang memiliki

    kemamuan untuk dirogram dan digunakan untuk tugas"tugas berorientasi

    kontrol. #alam sebuah $% mikrokontroler telah terdaat &'!( &A!( )*&'!(

    serialmauunparallel interface( timer( interrupt controller( converteranalog ke

    digital( dan lainnya +tergantung feature yang melengkai mikrokontroler

    tersebut,. #ari segi alikasinya( mikrokontroler ditu-ukan untuk tugas"tugas

    yang berorientasi kontrol ada rangkaian yang membutuhkan -umlah

    komonen minimum dan biaya rendah +low cost,.uatu mikrokontroler agar daat dirogram dan beker-a sebagai usat

    kontrol memerlukan rangkaian elektronik yang daat mendukungnya. !ulai

    dari power supply( Osilator( konektor( $*( dan &eset. /ersi rangkaian aling

    sederhana untuk membuat mikrokontroler bisa beker-a disebut sebagai sistem

    minimum mikrokontroler.Arduino meruakan sebuah bentuk sistem minimum mikrokontroler yang

    bersiat open source hardware dengan komunitas engguna yang luas di

    seluruh dunia. iat open source hardwareberarti semua inormasi rangkaian

    erangkat kerasnya dibuka dan setia orang boleh menggunakan dan

    mengembangkannya seara bebas. onse open sourceinilah yang kemudian

    men-adikan Arduino men-adi sangat ouler mendunia. Arduino daat

    dihubungkan dengan mudah ke berbagai -enis erangkat $' seerti )#(

    motor( sensor dan erangkat lainnya.

    1.2.SEJARAH ARDUINO

    aat ini tim arduino terdiri dari !assimo Bani( #aid %uartielles( ianlua

    !artino( #ae !ellis dan om $goe. u-uan mereka adalah untuk menitakan

    sebuah iring *latorm yang daat diaksesdigunakan oleh engguna non"

    tehnial dalam bidang kreati seerti seniman( desainer dan arsitek.

    etika royek tersebut selesai kemudian mereka terus berusaha

    mambuatnya lebih ringan( murah( dan tersedia untuk komunitas. eutusan

    1

  • 7/21/2019 Modul Arduino Basic Rev

    4/44

    besar diambil oleh !assimo Bani dan rekan"rekannya untuk membuat royek

    ini men-adi open source. !ereka memertimbangkan bah:a dengan keutusan

    itu Arduino akan lebih eat berkembang dan terus ma-u. ;ama Arduino

    diberikan oleh !assimo Bani. #ia terinsirasi dari nama ra-a dari $rea yang

    berkuasa ada tahun 1002 masehi bernama &a-a Arduin.

    onse dasar arduino ertama kali dibuat oleh serta %asey &eas

    dan !assimo Banai sebagai dosen embimbing. *ada tahun 2005( tim Arduino

    dibentuk di $era $talia yang terdiri dari !assimo Bani( #aid %uartielles( #ae

    !ellis( ianlua !artino( ;iholas ?ambetti. %asey &eas dibantu Ben @ry

    mengembangkan engolahan bahasa emrograman seara isual yang diberi

    nama roessing sot:are inilah yang men-adi ikal bakal Arduino $#) yaitu

    erangkat lunak yang disediakan untuk memrogram Arduino. ot:are

    tersebut menggunakan omiler g yang -uga open source.Arduino biasanya menggunakan $% mikrokontroler yang meruakan roduk

    dari Atmel. Bahasa emrograman yang digunakan Arduino adalah bahasa %%

    dengan enambahan library"library khusus Arduino. Bootloader -uga

    ditanamkan di hi mikrokontrolernya untuk membantu engguna

    memasukkan rogram melalui komunikasi serial B.

    1.3.APLIKASI ARDUINO

    elain karena open source( kemamuannya yang tinggi( bentuknya yang

    keil( konsumsi daya yang rendah( dan harga yang murah membuat Arduino

    banyak digunakan di dunia.%ontoh"ontoh royekC

    *engontrol motor

    !esin %;%

    *eralatan medis

    *engontrol suhu

    !onitoring energi

    * traking

    *engendali robot

    #an masih banyak lagi

    erdaat beberaa keunggulan yang dimiliki oleh Arduino antara lainC

    #ari egi

  • 7/21/2019 Modul Arduino Basic Rev

    5/44

    o idak memerlukan erangkat chip programmerkarena didalamnya

    sudah ada bootloader yang akan menangani uload rogram dari

    komuter melalui komunikasi serial B.o !emiliki modul add"on yang sia akai +dinamakan shield, yang

    bisa diasang ada board Arduino yang sudah dibuat oleh banyak

    ihak( misalnya shield *( )thernet( # %ard( dan sebagainya. #ari egi ot:are

    o Bahasa emrograman relati mudah karena sot:are Arduino $#)

    sudah dilengkai dengan kumulan library yang uku lengka.o erdaat banyak ontoh emrograman di internet.

    omunitas engguna yang luas untuk saling membantu dan bertukar

    ikiran.

    1.4.PERKEMBANGAN ARDUINO

    arena kebutuhan yang tinggi terhada sistem minimum mikrokontroler

    yang standar dan dengan berbagai kemudahan asilitasnya( maka ara

    embuat Arduino terus melakukan engembangan ada board Arduino. !ulai

    dari ort komunikasi yang diganti ke B( dan -uga enggunaan mikrokontroler

    yang memiliki lebih banyak keunggulan seerti @lash( ))*&'!( &A!( $' *in(

    A#%( A& dan *! yang lebih tinggi.

    Denis"-enis arduino bermaam"maam di antaranya eerino( #ieimila(

    #uemilanoe( no( ;ano( !ini( @io( ilyad( *ro( *ro mini( !ega( !ega2560(

    eonardo( !iro( Eun( #ue( dan re. Berikut sesiFkasi beberaa arduino yang

    oularC

    A'()*+, U+, S-/*0/*

    *roessor%* eedAnalog $'

    #igital$'*!))*&'!&A!@A

    3. ekan tombol =;eJt>

    4. *ilih diretori enyimanan yg diinginkan atau menggunakan diretori

    deault %C\*rogram @iles\Arduino\( lalu ilih =$nstall>

  • 7/21/2019 Modul Arduino Basic Rev

    31/44

    5. unggu hingga roses install selesai

    6. *ilih $nstall

    7. Dika telah selesai ilih %lose

    %' 9+)++ A'()*+, IDE ;

    Berikut tamilan ot:are Arduino $#)

  • 7/21/2019 Modul Arduino Basic Rev

    32/44

    eteranganC

    1. /eriy C untuk menganalisa rogram yang telah kita

    buat2. load C untuk uload rogram ke board arduino3. ;e: C membuat lembar ker-a baru4. 'en C membuka Fle rogram yang ernah dibuat5. ae C menyiman rogram yang telahakan dibuat6. ;ame @ile C nama Fle rogram7. erial !onitor C menamilkan komunikasi serial8. ab *roertis C menu roertis untuk ab9. embar er-a C temat menuliskan rogram

    10.&esult C menamilkan esan error hasil eriyuloadrogram

    11.erial *ort yang erkoneksi C menamilkan board arduino dan

    ort yg digunakan

    4.2.%OMPILE DAN DOWNLOAD KE %HIP

    ebelum memasukkan rogram ke arduino ada beberaa engaturan yang

    harus dilakukan yaitu C

    !emilih tie board arduino yang digunakan

  • 7/21/2019 Modul Arduino Basic Rev

    33/44

    !emilih ort serial yang digunakan

    o %ek ort serial yang digunakan ada deie managerlik kanan omuter TT #eie !anager TT *orts+%om O *,

  • 7/21/2019 Modul Arduino Basic Rev

    34/44

    ntuk memasukkan rogram ke dalam arduino tinggal menekan tombol

    uload tunggu hingga rosesnya selesai

    4.3.PEMROGRAMAN AVR UNTUK PORT I&O

    iga register yang harus diset untuk menggunakan ort $' C ##&J( *'&J(

    dan *$;J. G adalah nama oert yang bersangkutan +B( %( #,.

    menentukan arah ort +outut atau inut,%ontoh C in!ode+ LnomorinM ( L$;* atau '*M ,N

    Atau menggunakan syntaJ berikutC##IB11111110N ind # 1 samai 7 sebagai outut( in # 0

    sebagai inut

    menulis nilai ke ort +1 atau 0,%ontoh C digitalrite+ Lnomor inM( L

  • 7/21/2019 Modul Arduino Basic Rev

    35/44

    digital&ead+ Lnomor inM ,N

    ntuk engaturan in $' di Arduino biasanya menggunakan ungsi khusus

    in!ode+nomor*in( $;*'*,. *enulisan syntaJ tersebut dituliskan di a:aldalam =oid setu+,>.

    *engaturan

  • 7/21/2019 Modul Arduino Basic Rev

    36/44

    1. $+erial, C untuk memeriksa aakah *ort sudah sia2. erial.aailable+, C untuk memeriksa aakah data suda ada di bu]er

    enerima3. erial.begin+, C untuk memulai dan men"setting keeatan trasmisi

    data4. erial.end+, C untuk menon"aktikan in rJ dan tJ sebagai

    ungsi serial5. erial.Fnd+, C menari string dalam bu]er data6. erial.Fndntil+, C menari bu]er data samai syarat tertentu7. erial.Kush+, C menunggu data terkirim semua8. erial.arseKoat+, C mengambil data Koat ertama dari data di

    bu]er serial9. erial.arse$nt+, C mengambil data integer ertama dari data di bu]er

    serial10.erial.eek+, C mengambil data berikutnya di bu]er enerima11.erial.rint+, C mengirim data A%$$12.erial.rintln+, C mengirim data A%$$ %&(@ +kode enter,13.erial.read+, C membaa data yang diterima14.erial.readBytes+, C membaa data byte yang diterima15.erial.readBytesntil+, C membaa data byte yang diterima samai

    syarat tertentu16.erial.setimeout+, C men"setting batas maksimum :aktu tunggu

    transmisi data17.erial.:rite+, C mengirim data byte+numerik,18.erial.serial)ent+, C akti -ika data diterima( berungsi seerti

    interusi serial.

    %ontoh *rogramC

    har aNoid setu+,[erial.begin+9600,N erintah untuk memulai komunikasi

    serialerial.rintln+^

  • 7/21/2019 Modul Arduino Basic Rev

    37/44

    Y

    4.5.PEMROGRAMAN RELAY

    %ara ker-a relay hamir sama dengan )#( relay akan beker-a atau berhenti

    bila diberi kondisi .

  • 7/21/2019 Modul Arduino Basic Rev

    38/44

    *erulangan +delay tidak akurat,!enggunakan onditional statement orZtoZ atau :hileZ%ontoh C or+int aI0NaS100Na, delay selama 100 kali erulangan

    @ungsi =delay>!enggunakan ungsi yang sudah termasuk dalam arduino.

    yntaJC delay+ms,N%ontoh C delay+1000, delay selama 1000 miliseond atau 1 detik.

    %ontoh *rogram C

    int led*in I 13N )# terhubung dengan *in 13

    oid setu+,[ in!ode+led*in( '*,N engaturan digital *in sebagai 'ututY

    oid loo+,[ digitalrite+led*in(0,N )# nyala or+int timeI0NtimeS100Ntime,[ delay selama 100 erulangan Y digitalrite+led*in(1,N )# matiY

    %ontoh *rogram C

    int led*in I 13N )# terhubung dengan *in 13

    oid setu+,[ in!ode+led*in( '*,N engaturan digital *in sebagai 'ututY

    oid loo+,[ digitalrite+led*in(0,N )# nyala delay+1000,N delay selama 1 detikdigitalrite+led*in(1,N )# mati

    Y

    4.7.PEMROGRAMAN L%D

    Arduino menyediakan library untuk menggunakan erangkat %# 16J2.Beberaa ungsi %# yang ada ada arduino C

    i_uid%rystal ld+12(11(5(4(3(2,N inisialisasi ort yang digunakan

    +&()(#4(#5(#6(#7, ld.begin+16(2,N ld yang digunakan 16J2

    ld.rint+=halo( duniaQ>,N menetak tulisan halo(duniaQ

  • 7/21/2019 Modul Arduino Basic Rev

    39/44

    ld.set%ursor+0(1,N osisi dislay +kolom(baris, ada

    %# ld.lear+,N membersihkan tamilan %#

    ld.:rite+`LkarakterM,N menamilak 1 karakter

    *engaturan hard:areC

    ntuk menggunakan ungsi"ungsi %#( rogram dia:ali dengan inlude

    Si_uid%rystal.hT%ontoh *rogramC

    inlude Si_uid%rystal.hT library untuk %#

    i_uid%rystal ld+12( 11( 5( 4( 3( 2,N inisialisasi ort yang digunakan

    +&()(#4(#5(#6(#7,

    oid setu+, [ ld.begin+16( 2,N ld yang digunakan 16J2

    ld.rint+^hello( :orldQ^,N menetak tulisan halo(duniaQ

    Y

    oid loo+, [

    ld.set%ursor+0( 1,N osisi dislay +kolom(baris, ada

    %#

    Y

  • 7/21/2019 Modul Arduino Basic Rev

    40/44

    4..PEMROGRAMAN AD%A#% meruakan nilai analog yang diterima oleh in analog arduino dan

    diubahdionert men-adi digital. ntuk mendaatkan nilai A#% dari inutan

    menggunakan analog&ead+,*engaturan hard:areC

    %ontoh *rogram C

    inlude Si_uid%rystal.hT library untuk %#

    i_uid%rystal ld+13(12(11(10(9(8,N inisialisasi ort yang digunakan

    +&()(#4(#5(#6(#7,int analog*in I A0N in analog yang digunakanint al I 0N ariabel untuk menyiman

    embaaan analog

    oid setu+,[ ld.begin+16(2,N ld yang digunakan 16J2Y

    oid loo+,[ al I analog&ead+analog*in,N memasukkan embaaan analog

    ke ariabel alld.set%ursor+0( 1,N osisi dislay +kolom(baris, ada

    %# ld.rint+al,N etak al ada %# delay+1000,N delay 1 detik ld.lear+,N bersihkan %#

    Y

  • 7/21/2019 Modul Arduino Basic Rev

    41/44

    4.#.PEMROGRAMAN KEYPAD

    Berikut salah satu ontoh emrograman keyad.

    *engaturan hard:areC

    %ontoh *rogramC

    inlude Si_uid%rystal.hT memanggil ibrary ld

    deFne 1 6 mendeFnisikan in 6 Arduino untuk ol1 keyad

    deFne 2 7 mendeFnisikan in 7 Arduino untuk ol2 keyad

    deFne 3 8 mendeFnisikan in 8 Arduino untuk ol3 keyad

    deFne r1 9 mendeFnisikan in 9 Arduino untuk ro:1 keyad

    deFne r2 10 mendeFnisikan in 10 Arduino untuk ro:2 keyad

    deFne r3 11 mendeFnisikan in 11 Arduino untuk ro:3 keyad

    deFne r4 12 mendeFnisikan in 12 Arduino untuk ro:4 keyad

    i_uid%rystal ld+0(1(2(3(4(5,N

    !endeklarasikan in ld +&sI0N)nI1N#1I2N#2I3N#3I4N#4I5 &:nd,N

    unsigned har keyN /ariable untuk menyiman karakter hasil enekanan

    unsigned har tekanckeyad+,[ @untion enekanan eyad

    keyI"N

    delay+10,N

    digitalrite+r1(',N

    delay+10,N

    i+digital&ead+1,II',[keyI1NY

    i+digital&ead+2,II',[keyI2NY

    i+digital&ead+3,II',[keyI3NY

    digitalrite+r1(

  • 7/21/2019 Modul Arduino Basic Rev

    42/44

    delay+10,N

    i+digital&ead+1,II',[keyI4NY

    i+digital&ead+2,II',[keyI5NY

    i+digital&ead+3,II',[keyI6NY

    digitalrite+r2(

  • 7/21/2019 Modul Arduino Basic Rev

    43/44

    ld.begin+16(2,N

    Y

    oid loo+, [

    ut your main ode here( to run reeatedlyC

    tekanckeyad+,N!emanggil @untion enekanan keyad

    i+keyQI",[ Dika isi key bukan "

    ld.:rite+key,N menamilkan hasil enekanan ke ld

    delay+200,N

    Y

    Y

    4.1$. PEMROGRAMAN PWM

    *ulse idth !odulation +*!,. *ada Arduino ;' terdaat beberaa in

    yang suort dengan ungsi *! ini. ntuk memberikan nilai keluaran in

    *! menggunakan analogrite+, dengan nilai 0"255( ontoh analogrite+255,

    maksimum *! yang digunakan( analog:rite+127, setengah kemamuan

    *! yang digunakan.

    *engaturan hard:areC

  • 7/21/2019 Modul Arduino Basic Rev

    44/44

    %ontoh *rogramC

    int led*in I N led terhubung ke in 9

    int analog*in I A0N otentiometer terhubung ke in analog 3

    int al I 0N ariable untuk menyiman embaaan otensiometer

    oid setu+,

    [

    in!ode+led*in( '*,N engaturan in sebagai '*

    Y

    oid loo+,

    [

    al I analog&ead+analog*in,N membaa masukan in

    analogrite+led*in( al 4,N

    analog&ead bernilail dari 0"1023(analogrite bernilai 0"255

    Y