Hardware Dan Software Mikrokontroler Avr Dan Arduino
Hardware Dan Software Mikrokontroler Avr Dan Arduino
DAN ARDUINO
Steven Pragestu, M.T.
Mikrokontroler AVR
• AVR merupakan kependekan dari Alf and Vegard’s
RISC Processor, dikembangkan oleh Atmel.
• Menggunakan arsitektur RISC (Reduced Instruction
Set Computer).
• Keunggulan utama: instruksi sederhana, cepat, dan
efisien.
• Menggunakan arsitektur Harvard, memisahkan
memori program dan memori data.
Arduino
• Arduino adalah platform elektronik open-source
berbasis mikrokontroler AVR.
• Dirancang agar mudah digunakan oleh non-teknisi
(seniman, desainer, pelajar).
• Cocok untuk prototyping cepat dan pembelajaran
mikrokontroler.
• Pemrograman cukup dengan koneksi USB, tanpa
downloader eksternal.
Keunggulan Arduino
• Murah : board Ardunio biasanya dijual relatif murah
• Sederhana dan mudah pemrogramannya : Bahasa pemograman
Arduino sangat Fleksibel karena hampir mendekati bahasa manusia.
• Mudah digunakan: sintaks sederhana, banyak referensi.
• Open-source: hardware dan software bebas dimodifikasi.
• Komunitas besar: banyak proyek dan forum bantuan.
• Kompatibel dengan berbagai modul tambahan (sensor, motor driver,
dsb).
Arduino Uno R3
• Arduino Uno adalah papan mikrokontroler berbasis mikrokontroler 8-
bit ATmega328P. Bersama dengan ATmega328P, terdiri dari komponen
lain seperti osilator kristal, komunikasi serial, pengatur tegangan, dll
untuk mendukung mikrokontroler. Arduino Uno memiliki 14 pin
input/output digital (6 di antaranya dapat digunakan sebagai output
PWM), 6 pin input analog, koneksi USB, soket DC, header ICSP dan
tombol reset.
Spesifikasi Teknis Arduino Uno R3
Arduino Uno R3
Dasar Pemrograman Arduino
(Struktur Program)
A. Struktur
• Struktur dasar bahasa pemrograman Arduino sangat
sederhana hanya terdiri dari dua bagian. Dua bagian
tersebut dapat juga disebut sebagai fungsi utama
yaitu setup() dan loop().
• Di mana void setup() adalah bagian untuk inisialisasi
yang hanya dijalankan sekali di awal program,
sedangkan void loop() untuk mengeksekusi bagian
program yang akan dijalankan berulang-ulang untuk
selamanya.
Dasar Pemrograman Arduino
(Struktur Program)
• setup()
• Fungsi setup() hanya di panggil satu kali ketika
program pertama kali dijalankan. Ini digunakan untuk
mendefinisikan mode pin atau memulai komunikasi
serial. Fungsi setup() harus di ikut sertakan dalam
program walaupun tidak ada statement yang
dijalankan.
Dasar Pemrograman Arduino
(Struktur Program)
• loop()
• Setelah menjalankan fungsi setup() maka secara
langsung akan melakukan fungsi loop() secara
berurutan dan melakukan instruksi-instruksi yang ada
dalam fungsi loop() terus menerus.
Dasar Pemrograman Arduino
(Struktur Program)
B. Fungsi
• Function (fungsi) adalah blok pemrograman yang
mempunyai nama dan mempunyai statement yang
akan di eksekusi ketika function tersebut di panggil.
Fungsi void setup() dan void loop() telah di bahas di
atas dan pembuatan fungsi yang lain akan di bahas
selanjutnya.
Fungsi tersebut memiliki
• Contoh : nilai balik int (integer),
karena kalau tidak
menghendaki adanya nilai
balik maka type function
harus void.
Dasar Pemrograman Arduino
(Struktur Program)
C. Curly Braces {}
• Curly brace mendefinisikan awal dan akhir dari
sebuah blok fungsi. Apabila ketika memprogram dan
programmer lupa memberi curly brace tutup maka
ketika di compile akan terdapat laporan error.
Dasar Pemrograman Arduino
(Struktur Program)
D. Semicolon (;)
• Tanda titik koma adalah sintak wajib dalam
pemrograman Arduino. Biasanya sintak ini
ditempatkan pada akhir pernyataan.
Dasar Pemrograman Arduino
(Struktur Program)
E. Blok Komentar /*…*/
• Cara untuk menambahkan catatan atau penjelasan ke
dalam kode program. Catatan ini tidak akan dieksekusi
oleh mikrokontroler, tetapi akan tetap terlihat di
dalam kode dan dapat membantu programmer (atau
orang lain) memahami apa yang dilakukan oleh kode
tersebut.
Dasar Pemrograman Arduino
(Struktur Program)
F. Baris Komentar //
• Sama halnya dengan blok komentar, baris komentar
pun sama hanya saja yang dijadikan komen adalah per
baris.
Dasar Pemrograman Arduino
(Variabel)
Variabel adalah sebuah penyimpan nilai yang dapat
digunakan dalam program. Variabel dapat di rubah
sesuai dengan instruksi yang kita buat.
Ketika mendeklarasikan variabel harus diikut
sertakan tipe variabel serta nilai awal variabel.
Contoh :
Dasar Pemrograman Arduino
(Variabel Scope)
Sebuah variabel dapat dideklarasikan pada awal program sebelum void setup(), secara lokal di
dalam sebuah fungsi, dan terkadang di dalam sebuah blok statement pengulangan. Sebuah
variabel global hanya satu dan dapat digunakan pada semua blok fungsi dan statement di dalam
program. Variabel global di deklarasikan pada awal program sebelum fungsi setup().
Sebuah variabel lokal dideklarasikan di setiap blok fungsi atau di setiap blok statement
pengulangan dan hanya dapat digunakan pada block yang bersangkutan saja.
Contoh penggunaan:
Dasar Pemrograman Arduino (Tipe
Data)
A. byte
• Tipe data byte dapat menyimpan 8-bit nilai angka bilangan asli tanpa koma. Byte
memiliki range 0 – 255.
B. integer
• Integer merupakan tipe data utama untuk menyimpan nilai bilanganbulat tanpa
koma. Penyimpanan integer sebesar 16-bit dengan range 32.767 sampai -32.768.
Dasar Pemrograman Arduino (Tipe
Data)
C. long
• Perluasan ukuran untuk long integer, penyimpanan long integer sebesar 32-bit
dengan range 2.147.483.647 sampai -2.147.483.648.
D. float
• Float adalah tipe data yang dapat menampung nilai decimal, float merupakan
penyimpan yang lebih besar dari integer dan dapat menyimpan sebesar 32-bit
dengan range 3.4028235E+38 sampai -3.4028235E+38.
Dasar Pemrograman Arduino (Tipe
Data)
E. array
• Array adalah kumpulan nilai yang dapat di akses dengan nomor indeks, nilai yang
terdapat dalam array dapat di panggil dengan cara menuliskan nama array dan
nomor indeks. Array dengan indeks 0 merupakan nilai pertama dari array. Array
perlu di deklarasikan dan kalau perlu diberi nilai sebelum digunakan.
Contoh :
Dasar Pemrograman Arduino
(Operator Aritmetic)
A. Aritmetic
• Operator aritmatik terdiri dari penjumlahan, pengurangan, perkalian, dan
pembagian.
E. do…while
• Sama halnya dengan while() hanya saja pada operator do…while tidak melakukan
pengecekan pada awal tapi di akhir, sehingga otomatis akan melakukan satu kali
baris perintah walaupun pada awalnya sudah terpenuhi.
Dasar Pemrograman Arduino (Digital
I/O)
Board Arduino mempunyai jumlah pin yang berlabel digital D0 - D13 sebanyak 14
dengan pengalamatan 0 - 13. Namun apabila pin digital yang kita butuhkan masih
kurang, kita masih bisa menambahnya dengan menggunakan pin yang berlabel analog
A0 - A5 difungsikan sebagai pin digital input/output dengan pengalamatannya 14 - 19.
Ada saat tertentu pin digital 0 dan 1 tidak bisa digunakan karena di pakai untuk
komunikasi serial, sehingga harus hati-hati dalam pengalokasian I/O.
A. pinMode(pin, mode)
• Biasa digunakan dalam void setup() untuk mengkonfigurasi pin apakah sebagai INPUT atau
OUTPUT. Arduino digital pin secara default dikonfigurasi sebagai input sehingga untuk
mengubahnya harus menggunakan operator pinMode(pin, mode).
Dasar Pemrograman Arduino (Digital
I/O)
B. digitalRead(pin)
• Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW.
C. digitalWrite(pin, value)
• Digunakan untuk mengeset pin yang kita kehendaki dalam kondisi level tegangan HIGH atau LOW
(nyala atau mati). Pin digital Arduino mempunyai 14 ( 0 – 13 ).
Dasar Pemrograman Arduino
(Analog I/O)
Selain pin digital Arduino dilengkapi juga oleh pin analog yang berfungsi untuk membaca input
tegangan variabel antara 0 - 5 volt dengan resolusi ADC (Analog to Digital) 10-bit.
Pada Arduino ada 6 pin yang berlabel analog input dengan pengalamatan A0 - A5. Tidak seperti pin
digital yang dapat difungsikan selain sebagai digital input dapat juga sebagai digital output, namun pada
pin analog hanya dapat berfungsi sebagai analog input saja, apabila kamu ingin membuat Arduino
mengeluarkan output tegangan analog dapat dilakukan dengan menggunakan pin digital yang berlabel
PWM (3,5,6,9,10,11), tegangan analog yang dikeluarkan Arduino adalah dengan memanipulasi output
digital secara pulsa.
Dasar Pemrograman Arduino
(Analog I/O)
A. analogRead(pin)
• Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya dapat bekerja pada
analog pin (A0 - A5). Hasil dari pembacaan berupa nilai integer dengan range 0 sampai 1023.
B. analogWrite(pin, value)
• Mengirimkan nilai analog dengan metoda Pulse Width Modulation (PWM) ke pin yang berlabel
PWM (3,5,6,9,10,11). Nilai yang dapat digunakan adalah dari 0 - 255.
Dasar Pemrograman Arduino (Time)
A. delay(ms)
• Menghentikan program untuk sesaat sesuai dengan yang dikehendaki, satuannya dalam
millisecond.
B. millis()
• Mengembalikan nilai dalam millisecond dihitung sejak arduino board menyala. Penampungnya
harus dengan tipe data long integer.
Dasar Pemrograman Arduino (Math)
A. min(x,y)
• Membandingkan dua variabel dan akan mengembalikan nilai yang paling kecil.
B. max(x,y)
• Membandingkan dua variabel dan akan mengembalikan nilai yang paling besar.
Dasar Pemrograman Arduino
(Random)
A. randomSeed(seed)
• Membandingkan dua variabel dan akan mengembalikan nilai yang paling kecil.
B. random(min,max)
• Membandingkan dua variabel dan akan mengembalikan nilai yang paling besar.
Dasar Pemrograman Arduino (Serial)
A. Serial.begin(rate)
• Statement ini digunakan untuk mengaktifkan komunikasi serial dan mengatur baudrate.
Bauderate yang standar biasa digunakan dengan komputer adalah 9600bps.
B. Serial.println(data)
• Mengirimkan data ke serial port, diikuti oleh karakter Carriage Return dan Line Feed (CR dan LF)
atau yang kita kenal kode untuk Enter. Perintah ini mempunyai fungsi yang sama dengan
Serial.print() namun lebih sering digunakan karena setelah selesai data di kirim di ikuti enter
untuk data selanjutnya akan di tampilkan pada baris/alinea baru di bawahnya sehingga bisa
memudahkan dalam pembacaan data pada serial monitor.
Sekian dan Terima kasih