0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan44 halaman

Modul Arduino Basic Rev Compress

Dokumen ini membahas tentang Arduino, sebuah sistem minimum mikrokontroler open source yang populer di kalangan pengguna non-teknis. Terdapat penjelasan mengenai sejarah, aplikasi, dan perkembangan Arduino, serta arsitektur mikrokontroler AVR yang menjadi basis dari banyak board Arduino. Selain itu, dokumen ini juga mencakup dasar pemrograman Arduino dan berbagai jenis board yang tersedia.
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan44 halaman

Modul Arduino Basic Rev Compress

Dokumen ini membahas tentang Arduino, sebuah sistem minimum mikrokontroler open source yang populer di kalangan pengguna non-teknis. Terdapat penjelasan mengenai sejarah, aplikasi, dan perkembangan Arduino, serta arsitektur mikrokontroler AVR yang menjadi basis dari banyak board Arduino. Selain itu, dokumen ini juga mencakup dasar pemrograman Arduino dan berbagai jenis board yang tersedia.
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

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.8. OPERASI RELASIONAL (PERBANDINGAN).........................................20
3.9. OPERASI ARITMATIKA..........................................................................21
3.10. STATEMENT........................................................................................ 21
3.11. CONDITIONAL STATEMENT..............................................................21
3.12. FUNCTION.......................................................................................... 22
3.13. LATIHAN............................................................................................. 22
BAB 4. PEMROGRAMAN DENGAN ARDUINO IDE...........................................24
4.1. MEMBUAT PROGRAM...........................................................................24
4.2. COMPILE DAN DOWNLOAD KE CHIP..................................................27
4.3. PEMROGRAMAN AVR UNTUK PORT I/O.............................................28
4.4. KOMUNIKASI SERIAL........................................................................... 30
4.5. PEMROGRAMAN RELAY.......................................................................31
4.6. MEMBUAT DELAY.................................................................................. 32
4.7. PEMROGRAMAN LCD........................................................................... 33
4.8. PEMROGRAMAN ADC...........................................................................35
4.9. PEMROGRAMAN KEYPAD....................................................................36
4.10. PEMROGRAMAN PWM......................................................................38

BAB 2.
BAB 3. PENDAHULUAN

[Link] ITU ARDUINO

Ada baiknya sebelum membahas mengenai Arduino kita mengerti dulu apa
itu mikrokontroler. Mikrokontroler adalah single chip computer yang memiliki
kemampuan untuk diprogram dan digunakan untuk tugas-tugas berorientasi
kontrol. Dalam sebuah IC mikrokontroler telah terdapat ROM, RAM, EPROM,
serial maupun parallel interface, timer, interrupt controller, converter analog ke
digital, dan lainnya (tergantung feature yang melengkapi mikrokontroler
tersebut). Dari segi aplikasinya, mikrokontroler ditujukan untuk tugas-tugas
yang berorientasi kontrol pada rangkaian yang membutuhkan jumlah
komponen minimum dan biaya rendah (low cost).
Suatu mikrokontroler agar dapat diprogram dan bekerja sebagai pusat
kontrol memerlukan rangkaian elektronik yang dapat mendukungnya. Mulai
dari power supply, Osilator, konektor, ISP, dan Reset. Versi rangkaian paling
sederhana untuk membuat mikrokontroler bisa bekerja disebut sebagai sistem
minimum mikrokontroler.
Arduino merupakan sebuah bentuk sistem minimum mikrokontroler yang
bersifat open source hardware dengan komunitas pengguna yang luas di
seluruh dunia. Sifat open source hardware berarti semua informasi rangkaian
perangkat kerasnya dibuka dan setiap orang boleh menggunakan dan
mengembangkannya secara bebas. Konsep open source inilah yang kemudian
menjadikan Arduino menjadi sangat populer mendunia. Arduino dapat
dihubungkan dengan mudah ke berbagai jenis perangkat I/O seperti LED,
motor, sensor dan perangkat lainnya.

[Link] ARDUINO
Saat ini tim arduino terdiri dari Massimo Banzi, David Cuartielles, Gianluca
Martino, Dave Mellis dan Tom Igoe. Tujuan mereka adalah untuk menciptakan
sebuah Wiring Platform yang dapat diakses/digunakan oleh pengguna non-
technical dalam bidang kreatif seperti seniman, desainer dan arsitek.

Ketika proyek tersebut selesai kemudian mereka terus berusaha


mambuatnya lebih ringan, murah, dan tersedia untuk komunitas. Keputusan

1
besar diambil oleh Massimo Banzi dan rekan-rekannya untuk membuat proyek
ini menjadi open source. Mereka mempertimbangkan bahwa dengan keputusan
itu Arduino akan lebih cepat berkembang dan terus maju. Nama Arduino
diberikan oleh Massimo Banzi. Dia terinspirasi dari nama raja dari Ivrea yang
berkuasa pada tahun 1002 masehi bernama Raja Arduin.

Konsep dasar arduino pertama kali dibuat oleh Hernando Barragan pada
tahun 2004 untuk tesis master di Interaction Design Institute Ivera di Italia
dengan judul “Wiring: Prototyping Phisical Interaction Design” serta Casey Reas
dan Massimo Banzai sebagai dosen pembimbing. Pada tahun 2005, tim Arduino
dibentuk di Ivera Italia yang terdiri dari Massimo Banzi, David Cuartielles, Dave
Mellis, Gianluca Martino, Nicholas Zambetti. Casey Reas dibantu Ben Fry
mengembangkan pengolahan bahasa pemrograman secara visual yang diberi
nama processing software inilah yang menjadi cikal bakal Arduino IDE yaitu
perangkat lunak yang disediakan untuk memprogram Arduino. Software
tersebut menggunakan compiler gcc yang juga open source.
Arduino biasanya menggunakan IC mikrokontroler yang merupakan produk
dari Atmel. Bahasa pemrograman yang digunakan Arduino adalah bahasa C/C+
+ dengan penambahan library-library khusus Arduino. Bootloader juga
ditanamkan di chip mikrokontrolernya untuk membantu pengguna
memasukkan program melalui komunikasi serial USB.

[Link] ARDUINO

Selain karena open source, kemampuannya yang tinggi, bentuknya yang


kecil, konsumsi daya yang rendah, dan harga yang murah membuat Arduino
banyak digunakan di dunia.
Contoh-contoh proyek:
 Pengontrol motor
 Mesin CNC
 Peralatan medis
 Pengontrol suhu
 Monitoring energi
 GPS tracking
 Pengendali robot
 Dan masih banyak lagi

Terdapat beberapa keunggulan yang dimiliki oleh Arduino antara lain:


 Dari Segi Hardware

2
o Tidak memerlukan perangkat chip programmer karena didalamnya
sudah ada bootloader yang akan menangani upload program dari
komputer melalui komunikasi serial USB.
o Memiliki modul add-on yang siap pakai (dinamakan shield) yang
bisa dipasang pada board Arduino yang sudah dibuat oleh banyak
pihak, misalnya shield GPS, Ethernet, SD Card, dan sebagainya.
 Dari Segi Software
o Bahasa pemrograman relatif mudah karena software Arduino IDE
sudah dilengkapi dengan kumpulan library yang cukup lengkap.
o Terdapat banyak contoh pemrograman di internet.
 Komunitas pengguna yang luas untuk saling membantu dan bertukar
pikiran.

[Link] ARDUINO

Karena kebutuhan yang tinggi terhadap sistem minimum mikrokontroler


yang standar dan dengan berbagai kemudahan fasilitasnya, maka para
pembuat Arduino terus melakukan pengembangan pada board Arduino. Mulai
dari port komunikasi yang diganti ke USB, dan juga penggunaan mikrokontroler
yang memiliki lebih banyak keunggulan seperti Flash, EEPROM, SRAM, I/O Pin,
ADC, UART dan PWM yang lebih tinggi.
Jenis-jenis arduino bermacam-macam di antaranya Severino, Diecimila,
Duemilanove, Uno, Nano, Mini, Fio, Lilypad, Pro, Pro mini, Mega, Mega2560,
Leonardo, Micro, Yun, Due, dan Tre. Berikut spesifikasi beberapa arduino yang
popular:
Arduino Uno Spesifikasi

Processor :
CPU Speed ATmega328
Analog I/O : 16 Mhz
Digital : 6/0
IO/PWM : 14/6
EEPROM : 1 KB
SRAM : 2 KB
FLASH : 32 KB
USB : Regular
UART :1
Arduino Due Spesifikasi

3
Processor :
CPU Speed AT91SAM3X
Analog I/O 8E
Digital : 84 Mhz
IO/PWM : 12/2
EEPROM : 54/12
SRAM :-
FLASH : 96
USB : 512
UART : 2 Micro
:4

Arduino Leonardo Spesifikasi

Processor :
CPU Speed Atmega32u
Analog I/O 4
Digital : 16 Mhz
IO/PWM : 12/0
EEPROM : 20/7
SRAM :1
FLASH : 2.5
USB : 32
UART : Micro
:1
Arduino Mega 2560 Spesifikasi

Processor :
CPU Speed ATmega256
Analog I/O 0
Digital : 16 Mhz
IO/PWM : 16/0
EEPROM : 54/15
SRAM :4
FLASH :8
USB : 256
UART : Regular
:4
Arduino Mega ADK Spesifikasi

Processor :
CPU Speed ATmega256
Analog I/O 0
Digital : 16 Mhz
IO/PWM : 16/0
EEPROM : 54/15
SRAM :4
FLASH :8
USB : 256
UART : Regular

4
:4
Arduino Micro Spesifikasi

Processor :
CPU Speed Atmega32u
Analog I/O 4
Digital : 16 Mhz
IO/PWM : 12/0
EEPROM : 20/7
SRAM :1
FLASH : 2.5
USB : 32
UART : Micro
:1
Arduino Mini Spesifikasi

Processor :
CPU Speed Atmega328
Analog I/O : 16 Mhz
Digital : 8/0
IO/PWM : 14/6
EEPROM :1
SRAM :2
FLASH : 32
USB :-
UART :-

Arduino Nano Spesifikasi

Processor :
CPU Speed Atmega168
Analog I/O : 16 Mhz
Digital : 8/0
IO/PWM : 14/6
EEPROM : 0.512
SRAM :1
FLASH : 16
USB : Mini-B
UART :1
Arduino Fio Spesifikasi

Processor :
CPU Speed Atmega328
Analog I/O P
Digital : 8 Mhz
IO/PWM : 8/0
EEPROM : 14/6
SRAM :1
FLASH :2
USB : 32
UART : Mini
:1

5
Arduino Pro (328) Spesifikasi

Processor :
CPU Speed Atmega328
Analog I/O : 16 Mhz
Digital : 6/0
IO/PWM : 14/6
EEPROM :1
SRAM :2
FLASH : 32
USB :-
UART :1
Arduino Pro Mini Spesifikasi

Processor :
CPU Speed ATmega168
Analog I/O : 8 Mhz
Digital : 6/0
IO/PWM : 14/6
EEPROM : 0.512
SRAM :1
FLASH : 16
USB :-
UART :1

Arduino LilyPad Spesifikasi

Processor :
CPU Speed Atmega168
Analog I/O V
Digital : 8 Mhz
IO/PWM : 6/0
EEPROM : 14/6
SRAM : 0.512
FLASH :1
USB : 16
UART :-
:-

[Link]
1. Apa kelebihan dan kekurangan mikrokontroler dibandingkan
mikroprosesor komputer biasa?
2. Sebutkan keuntungan menggunakan Arduino dibandingkan dengan
board sistem minimum mikrokontroler yang lain?
3. Cari perbedaan-perbedaan yang ada antar jenis board Arduino.

BAB 4.

6
BAB 5. ARSITEKTUR MIKROKONTROLER AVR
4.

[Link] ARSITEKTUR MIKROKONTROLER AVR


5. Jenis Arduino yang sangat banyak dipakai saat ini adalah Arduino
UNO yang berbasis chip mikrokontroler AVR. Mikrokontroler AVR merupakan
arsitektur mikrokontroler yang dibuat oleh Atmel. Arsitekur ini dirancang
memiliki berbagai kelebihan dan merupakan penyempurnaan dari arsitektur
mikrokontroler-mikrokontroler yang sudah ada. Salah satu kelebihan tersebut
adalah kemampuan In System Programming sehingga chip mikrokontroler
langsung dapat diprogram dalam sistem rangkaian aplikasi melalui aturan
tertentu.
6. Arduino UNO menggunakan mikrokontroler dari keluarga AVR yaitu
seri ATmega328. Berikut adalah fitur-fitur mikrokontroler seri ATmega328.

 Kapasitas memori Flash 32 KB (0.5 KB digunakan untuk bootloader)


 Kapasitas memori EEPROM 1KB
 Memori SRAM 2 KB
 Maksimal 20 Pin I/O (14 digital I/O (6 PWM), dan 6 Input Analog)
 2 eksternal interrupt
 8 Channel Analog to Digital Converter (ADC)
 Satu 16-bit timer dan 2 8-bit timer
 Komunikasi serial melalui SPI, I2C dan USART

7. Secara umum blok diagram arsitektur AVR adalah sebagai berikut.


8.

9. Gambar 2.1. Diagram Blok AVR

10.
11.
12.
13.
14.
15.

[Link] FUNGSI PIN

16. Chip mikrokontroler AVR dapat dikemas (packaging) dalam bentuk


yang berbeda-beda. Namun pada dasarnya fungsi kaki yang ada pada IC
memiliki persamaan. Berikut gambar bentuk chip mikrokontroler AVR
ATmega328.
17.

18.

19. Gambar 2.2. Konfigurasi Kaki Mikrokontroler AVR ATmega328 PDIP 28 pin

20. Berikut adalah penjelasan fungsi tiap kaki yang ada pada seri
mikrokontroler AVR ATmega328.

A. VCC
21. VCC adalah kaki masukan tegangan bagi Digital.
B. GND
22. GND adalah kaki ground.
C. Port B
23. Merupakan 8-bit directional port I/O. setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Selain itu
Port B juga dapat memiliki fungsi alternatif seperti berikut

24. P 25. Fungsi Alternatif


ort
Pin
26. P 27. ICP1 = sebagai Timer Counter 1 input
B0 capture pin
28. P 29. OC1A = sebagai keluaran PWM (Pulse
B1 Width Modulation)
30. P 31. OC1B = sebagai keluaran PWM (Pulse
B2 Width Modulation)
32. SS = merupakan jalur komunikasi
SPI
33. P 34. OC2 = sebagai keluaran PWM (Pulse
B3 Width Modulation)
35. MOSI = merupakan jalur komunikasi SPI
36. P 37. MISO = merupakan jalur komunikasi SPI
B4
38. P 39. SCK = merupakan jalur komunikasi
B5 SPI
40. P 41. TOSC1 = sebagai sember clock
B6 eksternal untuk timer
42. XTAL1 = merupakan sumber clock
utama mikrokontroler
43. P 44. TOSC2 = sebagai sember clock
B7 eksternal untuk timer
45. XTAL2 = merupakan sumber clock
utama mikrokontroler
46.
D. Port C
47. Port C merupakan jalur data 6 bit yang dapat difungsikan sebaga I/O
digital.
48. Fungsi alternative PORTC antara lain sebagai berikut.

49. P 50. Fungsi Alternatif


ort
Pin
51. P 52. ADC dapat kita gunakan untuk
C0 mengubah input yang berupa tegangan analog
menjadi data digital. resolusi sebesar 10 bit
53. P 54. ADC dapat kita gunakan untuk
C1 mengubah input yang berupa tegangan analog
menjadi data digital. resolusi sebesar 10 bit
55. P 56. ADC dapat kita gunakan untuk
C2 mengubah input yang berupa tegangan analog
menjadi data digital. resolusi sebesar 10 bit
57. P 58. ADC dapat kita gunakan untuk
C3 mengubah input yang berupa tegangan analog
menjadi data digital. resolusi sebesar 10 bit
59. P 60. ADC dapat kita gunakan untuk
C4 mengubah input yang berupa tegangan analog
menjadi data digital. resolusi sebesar 10 bit
61. P 62. ADC dapat kita gunakan untuk
C5 mengubah input yang berupa tegangan analog
menjadi data digital. resolusi sebesar 10 bit
63.
E. Port D
64. 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 alternative
65.

66. P 67. Fungsi Alternatif


ort
Pin
68. P 69. RXD mengirim data USART
D0
70. P 71. TXD menerima data USART
D1
72. P 73. INT0 interupsi 0
D2
74. P 75. INT1 interupsi 1
D3
76. P 77. XCK clock eksternal USART
78. T0 masukan counter eksternal timer 0
D4
79. P 80. T1 masukan counter eksternal timer 1
D5
81. P 82. AIN0 analog input untuk komparator
D6
83. P 84. AIN1 analog input untuk komparator
D7
85.
F. AVcc
86. Adalah kaki masukan tegangan bagi A/D converter. Kaki ini harus
secara eksternal terhubung ke Vcc melalui lowpass filter.
G. AREF
87. Adalah kaki masukan referensi bagi A/D Converter. Untuk
operasional ADC, suatu level tegangan antara GND dan AVcc
H. RESET
88. Berada pada Port C 6. Jika pin ini diberi masukan low selama
minimal 2 machine cycle maka sistem akan di-reset.

[Link] MAP

89. Program-program dan data-data pada computer maupun


mikrokontroler disimpan pada memori. Mikrokontroler AVR
mengimplementasikan pembagian ruang memori untuk data dan program.
90.
91. Pada gambar diatas dapat dilihat gambaran secara lengkap dari on-
chip memory yang ada di mikrokontroler AVR ATmega328. Seperti ditunjukkan,
ruang memori dibagi menjadi memori program berupa Aplication Flash dan
Boot Flash dan memori data berupa Register File, I/O Memory, SRAM, dan
EEPROM.

 Program Memory
92.ATmega328 memiliki 32 KBytes on-chip In system Programmable
Flash untuk menyimpan program. Karena semua instruksi panjangnya
16 bit atau 32 bit, maka memori program ini diorganisasikan dalam
16K x 16 bit. Yang perlu diperhatikan juga adalah bahwa beberapa
alamat awal dari memori program merupakan alamat vector interupsi.
93.

94.
95.
96.
97.
98.
99.
 Data Memory
100. 32 General Purpose Working Register
101.

102.
103. Internal SRAM (Static Random Access Memory)
104. Internal SRAM ini memiliki ukuran 2KB. Dengan besarnya
ukuran SRAM yang dialokasikan maka diharapkan dapat meningkatkan
performa program.
105.
106. EEPROM (Electrically Erasable Programable Read Only
Memory)
107. Intenal memory ini memiliki ukuran 1 KB sebagai tempat
penyimpanan data permanen karena EEPROM tetap dapat menyimpan
data meskipun tidak ada catu daya.
[Link] BOARD ARDUINO

15
108. Skematik Board Arduino UNO

16
109. Gambar 2.3. Rangkaian Arduino UNO

17
110.

[Link] BOARD ARDUINO


111. Penjelasan fungsi tiap pin Arduino Uno.

112.
113.
114.

18
115. Penjelasan fungsi tiap pin Arduino Mega.

19
116.

20
[Link]
1. Apa kelebihan arsitekur mikrokontroler AVR dibanding dengan arsitektur
yang lain?
2. Cari tahu seri mikrokontroler apakah yang ada di tiap jenis board
Arduino?
3. Apa perbedaan memori RAM, EEPROM dan Flash?

BAB 6.

21
BAB 7. DASAR PEMROGRAMAN ARDUINO

[Link] PEMBUATAN PROGRAM


Pembuatan program mikrokontroler Arduino melalui beberapa tahapan.
Pertama adalah membuat kode programnya, kemudian kode program di-
compile/diterjemahkan ke bahasa mesin oleh arduino IDE dan tahap ketiga
hasil compile di-upload ke board Arduino. Pada tahap pertama program ditulis
dalam software arduino IDE, penulisan program menggunakan bahasa C yang
telah ditambahkan library-librari dari arduino sendiri.
Tahap kedua program dapat di analisis dengan fungsi verify yang dimiliki
oleh arduino IDE, ketika ada error pada program yang telah ditulis arduino IDE
akan memberikan notifikasi pada bagian mana program ada yang salah. Disini
program dapat diperbaiki kembali setelah seluruh program dinyatakan benar
oleh arduino IDE, baru dapat melaksanakan tahap terakhir.
Pada tahap terakhir program yang telah dibuat dapat langsung di upload ke
dalam board arduino. Dalam tahap upload ini secara otomatis program akan di
compile/diterjemahkan kedalam bahasa yang dimengerti oleh mesin sekaligus
program akan dimasukkan kedalam board arduino.

[Link] PEMROGRAMAN
Dalam pemrograman komputer dikenal dua jenis tingkatan bahasa, jenis
yang pertama adalah bahasa pemrograman tingkat tinggi (high level language)
dan jenis yang kedua adalah bahasa pemrograman tingkat rendah (low level
language). Bahasa pemrograman tingkat tinggi lebih berorientasi kepada
manusia yaitu bagaimana agar pernyataan-pernyataan yang dituliskan dalam
program mudah untuk manusia. Sedangkan bahasa tingkat rendah lebih
berorientasi ke mesin, yaitu bagaimana agar komputer dapat langsung
mengintepretasikan pernyataan-pernyataan program yang ditulis.
Untuk mengerjakan suatu tugas tertentu, program yang ditulis dalam
bahasa tingkat rendah relative lebih panjang dan lebih sulit dipahami, namun
kelebihannya adalah lebih efisien dan lebih cepat untuk dieksekusi oleh mesin.
Bahasa tingkat tinggi memerlukan compiler untuk mengkonversi instruksi-
instruksi ke dalam bahasa mesin.
Bahasa C adalah bahasa pemrograman yang tingkat keefektifannya
mendekati baha assembler. Object code yang dihasilkan bahasa C sangat kecil
dan dengan cepat dapat dieksekusi. Karena itulah pemrograman hardware
menggunakan bahasa C. Bahasa C dapat digunakan didalam sistem operasi
windows atau linux bisa juga menggunakan compiler lain. Bahasa C mudah
dipelajari karena pernyataannya yang subyektif tergantung kemampuan tiap
individu. Arduino menggunakan bahasa C yang ditambahkan library-librari
yang dimiliki oleh arduino sendiri.

[Link] PENULISAN PROGRAM


Struktur Program:

#include < > //library optional


[variable global] //opsional
[fungsi]
//opsional
void setup() {
//pengaturan I/O

}
//program utama

void loop() {
// fungsi perulangan
[deklarasi variabel local]
}

[Link] DATA
Tipe-tipe data dalam pemrograman C adalah sebagai berikut.

 void : tipe data yang tidak mengembalikan nilai


 boolean : benar/salah atau true/false
 char : 1 byte (-128 s/d 127)
 unsigned char : 1 byte (0 s/d 255)
 byte : 1 byte (0 s/d 255)
 int : 2 byte (-32768 s/d 32767)
 unsigned int : 2 byte (0 s/d 65535)
 word : 2 byte (0 s/d 65535)
 long : 4 byte (-2147483648 s/d 2147483647)
 unsigned long : 4 byte (0 s/d 4294967295)
 short : 2 byte (-32768 s/d 32767)
 float : bilangan desimal
 double : 4 byte (-2147483648 s/d 2147483647)
 string (char array) : kumpulan data dengan tipe data char
 String (objek) : gabungan 1/lebih karakter
 array : kumpulan data-data yang sama tipenya

[Link] ANGKA
 Biner : diawali dengan 0b, contoh : 0b11110011
 Desimal : ditulis seperti biasa, contoh : 15, 5, 93
 Hexadesimal : diawali dengan 0x, contoh : 0xFF, 0x5B, 0x0A

[Link] DATA
 Variabel
Adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
Deklarasi : [tipe data] [nama] = [nilai];

 Konstanta
Adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Deklarasi : const [tipe data] [nama] = [nilai];

Sifat dari penyimpan data :

 Global : variabel/konstanta yang dapat diakses di seluruh bagian


program.
 Local : variabel/konstanta yang hanya dapat diakses oleh fungsi
tempat dideklarasikannya.

[Link] LOGIKA DAN BINER


Logi  AND :  NOT :!
ka &&
 OR : ||
Bine  AND : &  XOR : ^  Right shift : >>
r  OR : |  Shift left : <<  Komplemen : ~

[Link] RELASIONAL (PERBANDINGAN)


 Sama dengan : ==
 Tidak sama dengan : !=
 Lebih besar : >
 Lebih besar sama : >=
dengan
 Lebih kecil :<
 Lebih kecil sama : <=
dengan

[Link] ARITMATIKA
Operator aritmatika bisa berupa +, -, *, /, %, +=, -=, *=, /=, ++, --

 +, -, *, / tambah, kurang, bagi


:
 +=, -=, *=, nilai disebelah kiri operator di tambah/kurang/kali/bagi
/= : dengan nilai di sebelah kanan operator
 % Sisa bagi
:
 ++, -- Tabmbah satu (increment), kurang satu (decrement)
:
Contoh : a = 5*6+2/1/2-1 ; maka nilai a adalah 30
a*=5 ; jika nilai awal a adalah 30, maka nilai a = 30 x 5 =
150
a+=3 ; jika nilai awal a adalah 30, maka nilai a = 30 + 3 =
33
a++ ; jika nilai awal a adalah 5, maka nilai a = 5 + 1 = 6
a - - ; jika nilai awal a adalah 5, maka nilai a = 5 – 1 = 4

3.10. STATEMENT
Adalah setiap operasi dalam pemrograman yang diakhiri dengan ; atau }.
Statement tidak akan dieksekusi bila diawali dengan tanda // untuk satu baris.
Lebih dari satu baris menggunakan pasangan /* [statement] */. Statement
yang tidak dieksekusi disebut juga comments/komentar.

3.11. CONDITIONAL STATEMENT


 if … else …
if ( [persyaratan] ){ [statement1] ; [statement2] ; … }
 for …
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ){ [statement1] ;
[statement2] ; …}
 while …
while ( [persyaratan] ) { [statement1] ; [statement2] ; … }
 do … while …
do ( [statement1] ; [statement2] ; … ) { [persyaratan] }
 switch … case …
switch ( [nama variable] )
{ case nilai1 : [statement] ; break ;
case nilai2 : [statement] ; break ; …}

3.12. FUNCTION
Adalah sub program yang dipanggil oleh program utama atau program
lainnya.
Penulisan :
[tipe data hasil] [nama fungsi] ( [tipe data input 1] , [tipe data input 2] )
{
[statement]
}
3.13. LATIHAN
Latihan 1
// Program Artimatika
int i,j ;

i = 11 ;
j = 23 ;
i++ ;
j = j*i-45 ;

Tentukan nilai akhir dari j

Latihan 2
// Program Artimatika
const int p=30,q=40;
int i,j,k ;

i = 10 ;
j = 20 ;
i++ ;
k = i*p-q/j ;

Berapa nilai akhir dari k?


Latihan 3
// Program dengan Looping
const faktor=3;
int i,angka=10;

for (i=0;i<3;i++) {
angka *= faktor ;
angka++;
}

Berapa nilai akhir dari angka?

Latihan 4
// Program Conditional Statement void setup() {
int hasil=0x0B, faktor, sisa; hasil *= 21 ;
void evaluasi() { if ((hasil>100) && (hasil<200))
switch (sisa) { {
case 0 : hasil += 50 ;
faktor=2 ; }
break ; else {
case 1 : hasil -= 50;
faktor=1 ; }
break ; sisa = hasil % 2;
} evaluasi();
} hasil += faktor;
}

Berapa nilai akhir dari hasil?


BAB 8. PEMROGRAMAN DENGAN ARDUINO IDE

[Link] PROGRAM
Berikut penjelasan mengenai cara istalasi dan penggunaan arduino IDE.
Untuk penggunaan arduino IDE juga dijelaskan fungsi-fungsi yang ada dalam
software tersebut.

Instalasi software arduino:

1. Jalankan [Link] jika tidak punya bisa didownload


secara gratis di website resmi arduino
[Link]
2. Akan muncul jendela seperti berikut, tekan tombol “I Agree”

3. Tekan tombol “Next”

4. Pilih directori penyimpanan yg diinginkan atau menggunakan directori


default C:\Program Files\Arduino\, lalu pilih “Install”
5. Tunggu hingga proses install selesai

6. Pilih Install

7. Jika telah selesai pilih Close

Cara menggunakan Arduino IDE :

Berikut tampilan Software Arduino IDE


Keterangan:

1. Verify : untuk menganalisa program yang telah kita


buat
2. Upload : untuk upload program ke board arduino
3. New : membuat lembar kerja baru
4. Open : membuka file program yang pernah dibuat
5. Save : menyimpan program yang telah/akan dibuat
6. Name File : nama file program
7. Serial Monitor : menampilkan komunikasi serial
8. Tab Propertis : menu propertis untuk Tab
9. Lembar Kerja : tempat menuliskan program
[Link] : menampilkan pesan error hasil verify/upload
program
[Link] Port yang Terkoneksi : menampilkan board arduino dan
port yg digunakan

[Link] DAN DOWNLOAD KE CHIP


Sebelum memasukkan program ke arduino ada beberapa pengaturan yang
harus dilakukan yaitu :

 Memilih tipe board arduino yang digunakan


 Memilih port serial yang digunakan

o Cek port serial yang digunakan pada device manager


Klik kanan computer >> Device Manager >> Ports(Com & LPT)
Untuk memasukkan program ke dalam arduino tinggal menekan tombol
upload tunggu hingga prosesnya selesai

[Link] AVR UNTUK PORT I/O


Tiga register yang harus diset untuk menggunakan port I/O : DDRx, PORTx,
dan PINx. X adalah nama poert yang bersangkutan (B, C, D).

 menentukan arah port (output atau input)


Contoh : pinMode( [nomorpin] , [INPUT atau OUTPUT] );
Atau menggunakan syntax berikut:
DDRD=B11111110; //pind D 1 sampai 7 sebagai output, pin D 0
sebagai input

 menulis nilai ke port (1 atau 0)


Contoh : digitalWrite( [nomor pin], [HIGH atau LOW] );
digitalWrite( [nomor pin], [1 atau 0] );
Atau menggunakan syntax berikut:
PORTD=B10101000; // memberikan nilai pada pin 7,5,3 HIGH
 membaca nilai port sebagai input (1 atau 0)
Contoh : digitalRead( [nomor pin] );
digitalRead( [nomor pin] );

Untuk pengaturan pin I/O di Arduino biasanya menggunakan fungsi khusus


pinMode(nomorPin, INPUT/OUTPUT). Penulisan syntax tersebut dituliskan di awal
dalam “void setup()”.
Pengaturan Hardware:

Contoh Program :

int buttonPin = 12; // tombol terhubung dengan Pin 12


int ledPin = 13; // LED terhubung dengan Pin 13
int var0=0; // memesan variable var0 dengan nilai 0

void setup()
{
pinMode(buttonPin, INPUT); // pengaturan digital Pin sebagai INPUT
pinMode(ledPin, OUTPUT); // pengaturan digital Pin sebagai Output
}

void loop()
{
var0=digitalRead(buttonPin); // menyimpan hasil pembacaan
buttonPin ke dalam var0
digitalWrite(ledPin,var0); // memberi logika 1/0 atau HIGH/LOW ke
dalam ledPin
}

[Link] SERIAL
Arduino IDE menyediakan fungsi Serial Monitor, pengguna menjadi
dimudahkan untuk menggunakan komunikasi serial. Komunikasi serial pada
arduino memiliki beberapa fungsi diantaranya sebagai berikut.

Fungsi-fungsi yang tersedia untuk komunikasi serial arduino:


1. If(Serial) : untuk memeriksa apakah Port sudah siap
2. [Link]() : untuk memeriksa apakah data suda ada di buffer
penerima
3. [Link]() : untuk memulai dan men-setting kecepatan trasmisi
data
4. [Link]() : untuk menon-aktifkan pin rx dan tx sebagai
fungsi serial
5. [Link]() : mencari string dalam buffer data
6. [Link]() : mencari buffer data sampai syarat tertentu
7. [Link]() : menunggu data terkirim semua
8. [Link]() : mengambil data float pertama dari data di
buffer serial
9. [Link]() : mengambil data integer pertama dari data di buffer
serial
[Link]() : mengambil data berikutnya di buffer penerima
[Link]() : mengirim data ASCII
[Link]() : mengirim data ASCII + CR,LF (kode enter)
[Link]() : membaca data yang diterima
[Link]() : membaca data byte yang diterima
[Link]() : membaca data byte yang diterima sampai
syarat tertentu
[Link]() : men-setting batas maksimum waktu tunggu
transmisi data
[Link]() : mengirim data byte(numerik)
[Link]() : aktif jika data diterima, berfungsi seperti
interupsi serial.

Contoh Program:

char a;
void setup()
{
[Link](9600); //perintah untuk memulai komunikasi
serial
[Link]("Halo Dunia"); //perintah untuk mengirim data
}

void loop()
{
while([Link]()){ //cek ada data yg dikirim atau tidak
a=[Link](); //menyimpan data yg diterima ke variabel a
[Link](a); //mencetak data variable a
}
}

[Link] RELAY
Cara kerja relay hampir sama dengan LED, relay akan bekerja atau berhenti
bila diberi kondisi HIGH/LOW atau 1/0.

Pengaturan Hardware:

Contoh Program :

int buttonPin = 12; // tombol terhubung dengan Pin 12


int relayPin = 13; // relay terhubung dengan Pin 13
int var0=0; // memesan variable var0 dengan nilai 0

void setup()
{
pinMode(buttonPin, INPUT); // pengaturan digital Pin sebagai INPUT
pinMode(relayPin, OUTPUT); // pengaturan digital Pin sebagai Output
}
void loop()
{
var0=digitalRead(buttonPin); // menyimpan hasil pembacaan
buttonPin ke dalam var0
digitalWrite(ledPin,var0); // memberi logika 1/0 atau HIGH/LOW ke
dalam ledPin
}

[Link] DELAY
Ada beberapa cara untuk membuat delya: looping, dan fungsi “delay”.
 Perulangan (delay tidak akurat)
Menggunakan conditional statement for…to… atau while…
Contoh : for(int a=0;a<100;a++) //delay selama 100 kali perulangan
 Fungsi “delay”
Menggunakan fungsi yang sudah termasuk dalam arduino.
Syntax: delay(ms);
Contoh : delay(1000) //delay selama 1000 milisecond atau 1 detik.

Contoh Program :

int ledPin = 13; // LED terhubung dengan Pin 13

void setup()
{
pinMode(ledPin, OUTPUT); // pengaturan digital Pin sebagai Output
}

void loop()
{
digitalWrite(ledPin,0); // LED nyala
for(int time=0;time<100;time++){ // delay selama 100 perulangan
}
digitalWrite(ledPin,1); // LED mati
}

Contoh Program :

int ledPin = 13; // LED terhubung dengan Pin 13

void setup()
{
pinMode(ledPin, OUTPUT); // pengaturan digital Pin sebagai Output
}

void loop()
{
digitalWrite(ledPin,0); // LED nyala
delay(1000); // delay selama 1 detik
digitalWrite(ledPin,1); // LED mati
}

[Link] LCD
Arduino menyediakan library untuk menggunakan perangkat LCD 16x2.
Beberapa fungsi LCD yang ada pada arduino :

 LiquidCrystal lcd(12,11,5,4,3,2);// inisialisasi port yang digunakan


(RS,E,D4,D5,D6,D7)
 [Link](16,2); // lcd yang digunakan 16x2
 [Link](“halo, dunia!”); // mencetak tulisan halo,dunia!
 [Link](0,1); // posisi display (kolom,baris) pada
LCD
 [Link](); // membersihkan tampilan LCD
 [Link](‘[karakter]’); // menampilak 1 karakter

Pengaturan hardware:

Untuk menggunakan fungsi-fungsi LCD, program diawali dengan #include


<LiquidCrystal.h>
Contoh Program:

#include <LiquidCrystal.h> // library untuk LCD

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // inisialisasi port yang digunakan


(RS,E,D4,D5,D6,D7)
void setup() {
[Link](16, 2); // lcd yang digunakan 16x2
[Link]("hello, world!"); // mencetak tulisan halo,dunia!
}

void loop() {
[Link](0, 1); // posisi display (kolom,baris) pada
LCD
}
[Link] ADC
ADC merupakan nilai analog yang diterima oleh pin analog arduino dan
diubah/diconvert menjadi digital. Untuk mendapatkan nilai ADC dari inputan
menggunakan analogRead()
Pengaturan hardware:

Contoh Program :

#include <LiquidCrystal.h> // library untuk LCD

LiquidCrystal lcd(13,12,11,10,9,8); // inisialisasi port yang digunakan


(RS,E,D4,D5,D6,D7)
int analogPin = A0; // pin analog yang digunakan
int val = 0; // variabel untuk menyimpan
pembacaan analog

void setup()
{
[Link](16,2); // lcd yang digunakan 16x2
}

void loop()
{
val = analogRead(analogPin); // memasukkan pembacaan analog
ke variabel val
[Link](0, 1); // posisi display (kolom,baris) pada
LCD
[Link](val); // cetak val pada LCD
delay(1000); // delay 1 detik
[Link](); // bersihkan LCD

}
[Link] KEYPAD
Berikut salah satu contoh pemrograman keypad.
Pengaturan hardware:

Contoh Program:

#include <LiquidCrystal.h> //memanggil Library lcd


#define c1 6 //mendefinisikan pin 6 Arduino untuk col1 keypad
#define c2 7 //mendefinisikan pin 7 Arduino untuk col2 keypad
#define c3 8 //mendefinisikan pin 8 Arduino untuk col3 keypad
#define r1 9 //mendefinisikan pin 9 Arduino untuk row1 keypad
#define r2 10 //mendefinisikan pin 10 Arduino untuk row2 keypad
#define r3 11 //mendefinisikan pin 11 Arduino untuk row3 keypad
#define r4 12 //mendefinisikan pin 12 Arduino untuk row4 keypad

LiquidCrystal lcd(0,1,2,3,4,5);
//Mendeklarasikan pin lcd (Rs=0;En=1;D1=2;D2=3;D3=4;D4=5 Rw+Gnd);

unsigned char key; //Variable untuk menyimpan karakter hasil penekanan


unsigned char tekan_keypad(){ //Function penekanan Keypad
key='-';
delay(10);
digitalWrite(r1,LOW);
delay(10);
if(digitalRead(c1)==LOW){key='1';}
if(digitalRead(c2)==LOW){key='2';}
if(digitalRead(c3)==LOW){key='3';}
digitalWrite(r1,HIGH);digitalWrite(r2,LOW);
delay(10);
if(digitalRead(c1)==LOW){key='4';}
if(digitalRead(c2)==LOW){key='5';}
if(digitalRead(c3)==LOW){key='6';}
digitalWrite(r2,HIGH);digitalWrite(r3,LOW);
delay(10);
if(digitalRead(c1)==LOW){key='7';}
if(digitalRead(c2)==LOW){key='8';}
if(digitalRead(c3)==LOW){key='9';}
digitalWrite(r3,HIGH);digitalWrite(r4,LOW);
delay(10);
if(digitalRead(c1)==LOW){key='*';}
if(digitalRead(c2)==LOW){key='0';}
if(digitalRead(c3)==LOW){key='#';}
digitalWrite(r4,HIGH);
delay(10);
return key;
}
void setup() {
// put your setup code here, to run once:
pinMode(c1,INPUT); //menjadikan col1 sebagai INPUT
pinMode(c2,INPUT); //menjadikan col2 sebagai INPUT
pinMode(c3,INPUT); //menjadikan col3 sebagai INPUT
pinMode(r1,OUTPUT); //Menjadikan row1 sebagai OUTPUT
pinMode(r2,OUTPUT); //Menjadikan row2 sebagai OUTPUT
pinMode(r3,OUTPUT); //Menjadikan row3 sebagai OUTPUT
pinMode(r4,OUTPUT); //Menjadikan row4 sebagai OUTPUT
//Memberi logika HIGH pada col1-col3 dan row1-row4
digitalWrite(c1,HIGH);
digitalWrite(c2,HIGH);
digitalWrite(c3,HIGH);
digitalWrite(r1,HIGH);
digitalWrite(r2,HIGH);
digitalWrite(r3,HIGH);
digitalWrite(r4,HIGH);
//Inisialisai LCD (16x2)
[Link](16,2);
}

void loop() {
// put your main code here, to run repeatedly:
tekan_keypad();//Memanggil Function penekanan keypad
if(key!='-'){ //Jika isi key bukan '-'
[Link](key); //menampilkan hasil penekanan ke lcd
delay(200);
}
}

4.10. PEMROGRAMAN PWM


Pulse Width Modulation (PWM). Pada Arduino UNO terdapat beberapa pin
yang support dengan fungsi PWM ini. Untuk memberikan nilai keluaran pin
PWM menggunakan analogWrite() dengan nilai 0-255, contoh analogWrite(255)
maksimum PWM yang digunakan, analogwrite(127) setengah kemampuan
PWM yang digunakan.

Pengaturan hardware:
Contoh Program:

int ledPin = ; // led terhubung ke pin 9


int analogPin = A0; // potentiometer terhubung ke pin analog 3
int val = 0; // variable untuk menyimpan pembacaan potensiometer
void setup()
{
pinMode(ledPin, OUTPUT); // pengaturan pin sebagai OUTPUT

}
void loop()
{
val = analogRead(analogPin); // membaca masukan pin
analogWrite(ledPin, val / 4);
// analogRead bernilail dari 0-1023,analogWrite bernilai 0-255
}

Anda mungkin juga menyukai