Anda di halaman 1dari 8

LAPORAN MIKROKONTROLER

ARDUINO UNO

Jericho P. Tarigan NIM 171344014

Tanggal Percobaan : Jumat, 29 November 2019


Penyerahan Laporan : Jumat, 6 Desember 2019

Ferry Satria

POLITEKNIK NEGERI BANDUNG


D4 – Teknik Telekomunikasi 3NK
Teknik Elektro
2019
A. PENDAHULUAN
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). 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.

Gambar 2.3. Board Arduino Uno


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.
Tabel Deskripsi Arduino Uno
(Sumber: http://www.arduino.cc)

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
B. TUJUAN
1. Mahasiswa dapat mengetahui dan memahami dasar-dasar pemrograman
menggunakan Arduino Uno.

C. LANGKAH KERJA

1. Membuat rangkaian 7 Segment Display dihubungkan dengan Arduino Uno


2. Merangkai rangkaian pada Protoboard
3. Membuka Software Arduino IDE
4. Membuat Sketch
5. Jalankan program arduino, kemudian akan muncul program arduino IDE dengan
tampilan sketch sesuai dengan tanggal dan bulan pada saat program dijalankan.
6. Menulis program yang telah dibuat
7. Menyimpan Sketch
Klik pada menu file pilih save atau save as, pilih folder yang akan digunakan
menyimpan file, ketikan nama file misanya Coba 1 Led kemudian klik save.
8. Menjalankan sketch (Verify/Compile)
Untuk menjalankan program yaitu dengan cara mengklik symbol Verify atau dari
menu sketch pilih Verify/Compile bisa juga dengan shortcut Ctrl + R. Apabila verify
sukses akan terdapat tulisan Done Compilling.
9. Memperbaiki kesalahan / error jika ada
10. Mengupload File
Setelah selesai diverifikasi sketch bisa langsung diupload ke arduino yaitu dengan
mengklik symbol upload atau dari menu file pilih upload, bisa juga dengan shortcut
Ctrl + U, tunggu hingga proses upload selesai
11. Jika proses upload sudah selesai, amati output yang ditampilkan pada rangkaian.

D. ANALISA
1. Buat program menampilkan counter modulo 124 dan memiliki mode up atau down
counter.
Program :

int pin1[3] = {6,5,4}; //pin yang tersambung ke common


int pin2[7] = {7,8,9,10,11,12,13}; //pin yang tersambung ke segmen
int karakter[10][7] = {
{1,0,0,0,0,0,0},{1,1,1,1,0,0,1},{0,1,0,0,1,0,0},{0,1,1,0,0,0,0},
{0,0,1,1,0,0,1},{0,0,1,0,0,1,0},{0,0,0,0,0,1,1},{1,1,1,1,0,0,0},
{0,0,0,0,0,0,0},{0,0,1,1,0,0,0}};
int common[3][3] = {{1,0,0},{0,1,0},{0,0,1}};

void setup() {
pinMode (3,INPUT);
pinMode (4,OUTPUT);
pinMode (5,OUTPUT);
pinMode (6,OUTPUT);
pinMode (7,OUTPUT);
pinMode (8,OUTPUT);
pinMode (9,OUTPUT);
pinMode (10,OUTPUT);
pinMode (11,OUTPUT);
pinMode (12,OUTPUT);
pinMode (13,OUTPUT);
}

void loop() {
int j,angka,interupt,data=0;
int tampil,tampil1;

while(1){
for(j=0;j<60;j++){

angka = 0;
pindahcommon(angka);
tampil = data/100;
pindahkarakter(tampil);
delay(5.55);

angka = 1;
pindahcommon(angka);
tampil1 = data/10;
tampil = tampil1%10;
pindahkarakter(tampil);
delay(5.55);

angka = 2;
pindahcommon(angka);
tampil = data%10;
pindahkarakter(tampil);
delay(5.55);

}
interupt = digitalRead(3);
if(interupt == 0){
data = data+1;
if(data==124)
data = 0;
}
else
data = data-1;
if(data==-1)
data = 123;
}
}

void pindahcommon(int angka){


for(int i=0;i<3;i++)
digitalWrite(pin1[i],common[angka][i]);
}

void pindahkarakter(int tampil){


for(int i=0;i<7;i++)
digitalWrite(pin2[i],karakter[tampil][i]);
}

Rangkaian Schematic :
Analisa :
Board Arduino uno yang telah terhubung dengan 3 buah 7 segment yang
digunakan pada praktikum ini dapat digambarkan seperti rangkaian schematic nya
seperti pada bagian gambar rangkaian schematic diatas. Dari rangkaian tersebut
diketahui bahwa pada board ini digunakan 11 pin i/o yang terdiri dari 10 pin output
yang terbagi menjadi 2. Tujuh pin (pin 7-13) tersambung pararel ke ketujuh segmen
masing masing 7 segment dan 3 pin (pin 4-6) output lainnya terhubung ke masing
masing port common 7 segment. Satu buah pin lainnya digunakan sebagai pin input
untuk interrupt. Dari rangkaian diatas juga terlihat bahwa 10 pin yang digunakan
terhubung ke kaki base sebuah transistor, hal ini menandakan bahwa setiap keluaran
yang dihasilkan pin i/o akan berfungsi mengatur forward atau tidaknya transistor yang
digunakan. Pada pin ouput yang terhubung ke segment digunakan transistor pnp
sehingga untuk mengaktifkan transistor nya diperlukan pemberian kondisi low (‘0’)
pada kaki base. Sebaliknya pada pin output yang terhubung ke common digunakan
transistor npn yang mengakibatkan pemberian kondisi high (‘1’) pada kaki base akan
mengaktifkan transistor. Dari pemahaman dasar terhadap board yang digunakan
selanjutnya dapat dirancang pemrograman yang berfungsi untuk menampilkan
keluaran yang diharapkan.
Pada awal program masing masing pin dideklarasi kan pada sebuah variable untuk
memudahkan saat mengakses setiap pin yang nantinya diperlukan.
int pin1[3] = {6,5,4}; //pin yang tersambung ke common
int pin2[7] = {7,8,9,10,11,12,13}; //pin yang tersambung ke segmen
Kode yang berfungsi untuk mengaktifkan 7 segment seperti karakter yang diinginkan
juga dideklarasikan pada awal program. Karakter yang mungkin muncul pada counter
modulo 124 yaitu angka 0 sampai dengan angka 9.
int karakter[10][7] = {
{1,0,0,0,0,0,0},{1,1,1,1,0,0,1},{0,1,0,0,1,0,0},{0,1,1,0,0,0,0},
{0,0,1,1,0,0,1},{0,0,1,0,0,1,0},{0,0,0,0,0,1,1},{1,1,1,1,0,0,0},
{0,0,0,0,0,0,0},{0,0,1,1,0,0,0}};

Setiap 7 bit merupakan data yang digunakan untuk menghasilkan keluaran suatu
angka pada 7 segment. Bit paling kiri akan mengatur segment g dan bit paling kanan
akan mengatur segment a. Seperti yang telah dijelaskan pada paragraph sebelumnya
bahwa transistor yang terhubung ke 7 segment akan aktif ketika diberi kondisi low.
Selanjutnya deklarasi juga dilakukan terhadap kode yang diperlukan untuk
mengaktifkan common 7 segment.
int common[3][3] = {{1,0,0},{0,1,0},{0,0,1}};

Pada common transistor yang digunakan aktif high sehingga dengan kode diatas maka
setiap saat hanya akan ada satu 7 segment yang aktif. Selanjutnya dilakukan
inisialisasi pada void setup, masing-masing pin Arduino yang digunakan diinisialisasi
menjadi input atau output.
Pemrograman utama dilakukan pada main program atau void loop, seperti
yang diminta pada soal bahwa counter akan selalu ditampilkan selama board menyala
sehingga pada bagian program akan menggunakan perintah while. Selanjutnya
terdapat perulangan for dengan batas 60. Ini digunakan untuk menampilkan keluaran
dengan kualitas 60 frame/s (60 fps). Hal yang pertama dilakukan adalah
memindahkan kode 100 dari variable common ke pin 6,5, dan 4 untuk mengaktifkan 7
segment pada pin 6 dimana 7 segment tersebut akan berfungsi untuk menampilkan
angka ratuasan dari counter yang dirancang. Selanjutnya dilakukan penentuan angka
ratusan yang hendak ditampilkan dengan menggunakan perintah tampil =
data/100; angka ratusan tersebut digunakan pada fungsi pindahkarakter . Dengan
adanya angka ratusan tersebut maka kode dari variable karakter dapat dirujuk yang
kemudian akan dikirim ke pin 7-13. Maka keluaran pada 7 segment sesuai dengan
angka ratusan yang diminta.
Hal ini juga dilakukan saat hendak menampilkan angka puluhan, kode
mengaktifkan 7 segment juga dipindahkan dari variable common, selanjutnya
melakukan pengambilan data puluhan dari ‘data’. Angka puluhan akan digunakan
kembali untuk merujuk array yang ada pada variable karakter. Hal yang sama juga
terjadi saat hendak menampilkan satuan. Masing-masing karakter di delay selama
5.55 ms untuk menghasilkan keluaran 60 fps.
 60 frame/s
 3 karakter/frame
 180 karakter/s
 180 karakter/1000ms
 1 karakter/5.55ms
Delay dilakukan setiap kali selesai menampilkan satu karakter, delay yang sangat
singkat tidak dapat terdeteksi oleh mata sehingga seakan akan mata melihat counter
yang dihasilkan ditampilkan secara bersamaan.
Counter pada soal ini dirancang dapat diubah mode nya menjadi up counter
atau down counter. Oleh karena itu setiap selesai menampilkan 1 data, dilakukan
pengambilan data pada pin input yaitu pin 3 dengan perintah dibawah ini.
interupt = digitalRead(3);

Dengan demikian pada variable interrupt akan terdeteksi kondisi yang diberikan pada
pin 3 baik low ataupun high. Apabila berada pada kondisi low maka ‘data’ akan terus
bertambah 1 setiap saat dan ketika sudah mencapai 124 maka ‘data’ dikembalikan lagi
menjadi 0. Sebaliknya ketika variable interrupt berada pada kondisi high maka ‘data’
selalu berkurang 1 setiap saat dan akan diatur kembali menjadi 123 ketika ‘data’
sudah lebih kecil dari 0.

E. KESIMPULAN
Dari praktikum yang telah dilakukan dapat disimpulkan bahwa pemrograman dengan
menggunakan Arduino uno tidak jauh berbeda dengan yang dilakukan dengan
ATmega 8535. Keduanya menggunakan bahasa C sebagai bahasa pemrograman nya,
perbedaannya pada ATmega 8535 inisialisasi dilakukan langsung ke register yang
digunakan. Sedangkan pada Arduino uno inisialiasi atau deklarasi dilakukan terhadap
pin atau variable yang digunakan.

Anda mungkin juga menyukai