MIKROKONTROLER
Disusun Oleh :
2B D4 Teknik Listrik
LED mempunyai 2 kaki yang disebut dengan noda (+) dan katoda (-). Apabila
dihubungkan dengan sumber tegangan maka kaki-kaki tersebut harus disesuaikan dengan
polaritas dari sumber tegangan tersebut. Untuk membedakan kaki anoda dan katoda, dapat
memperhatikan gambar berikut :
B. Arduino UNO
Arduino UNO adalah sebuah board mikrokontroler yang didasarkan pada
ATmega328 (datasheet). Arduino UNO mempunyai 14 pin digital input/output (6 di
antaranya dapat digunakan sebagai output PWM), 6 input analog, sebuah osilator
Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ICSP header, dan
sebuat tombol reset. Arduino UNO memuat semua yang dibutuhkan untuk menunjang
mikrokontroler, mudah menghubungkannya ke sebuah computer dengan sebuah kabel
USB atau mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai
untuk memulainya.
Arduino Uno berbeda dari semua board Arduino sebelumnya, Arduino UNO tidak
menggunakan chip driver FTDI USB-to-serial. Sebaliknya, fitur-fitur Atmega16U2
(Atmega8U2 sampai ke versi R2) diprogram sebagai sebuah pengubah USB ke serial.
Revisi 2 dari board Arduino Uno mempunyai sebuah resistor yang menarik garis 8U2
HWB ke ground, yang membuatnya lebih mudah untuk diletakkan ke dalam DFU
mode. Revisi 3 dari board Arduino UNO memiliki fitur-fitur baru sebagai berikut:
Pinout 1.0: ditambah pin SDA dan SCL yang dekat dengan pin AREF dan dua pin
baru lainnya yang diletakkan dekat dengan pin RESET, IOREF yang
memungkinkan shield-shield untuk menyesuaikan tegangan yang disediakan dari
board. Untuk ke depannya, shield akan dijadikan kompatibel/cocok dengan board
yang menggunakan AVR yang beroperasi dengan tegangan 5V dan dengan
Arduino Due yang beroperasi dengan tegangan 3.3V. Yang ke-dua ini merupakan
sebuah pin yang tak terhubung, yang disediakan untuk tujuan kedepannya
Sirkit RESET yang lebih kuat
Atmega 16U2 menggantikan 8U2
2) Memori
ATmega328 mempunyai 32 KB (dengan 0,5 KB digunakan untuk bootloader). ATmega
328 juga mempunyai 2 KB SRAM dan 1 KB EEPROM (yang dapat dibaca dan ditulis
(RW/read and written) dengan EEPROM library).
`Input dan Output
Setiap 14 pin digital pada Arduino Uno dapat digunakan sebagai input dan output,
menggunakan fungsi pinMode(),digitalWrite(), dan digitalRead(). Fungsi-fungsi
tersebut beroperasi di tegangan 5 Volt. Setiap pin dapat memberikan atau menerima
suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara
default) 20-50 kOhm. Selain itu, beberapa pin mempunyai fungsi-fungsi spesial:
Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan
(TX) serial data TTL (Transistor-Transistor Logic). Kedua pin ini dihubungkan ke
pin-pin yang sesuai dari chip Serial Atmega8U2 USB-ke-TTL.
External Interrupts: 2 dan 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu
sebuah interrupt (gangguan) pada sebuah nilai rendah, suatu kenaikan atau
penurunan yang besar, atau suatu perubahan nilai. Lihat
fungsi attachInterrupt() untuk lebih jelasnya.
PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan
fungsi analogWrite().
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport
komunikasi SPI menggunakan SPI library.
LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin
bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati.
Arduino UNO mempunyai 6 input analog, diberi label A0 sampai A5, setiapnya
memberikan 10 bit resolusi (contohnya 1024 nilai yang berbeda). Secara default, 6 input
analog tersebut mengukur dari ground sampai tegangan 5 Volt, dengan itu mungkin
untuk mengganti batas atas dari rangenya dengan menggunakan pin AREF dan
fungsi analogReference(). Di sisi lain, beberapa pin mempunyai fungsi spesial:
TWI: pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI
dengan menggunakan Wire library
Lihat juga pemetaan antara pin Arduino dengan port Atmega328. Pemetaan untuk
Atmega8, 168, dan 328 adalah identik.
3) Komunikasi
Arduino UNO mempunyai sejumlah fasilitas untuk komunikasi dengan sebuah
komputer, Arduino lainnya atau mikrokontroler lainnya. Atmega 328 menyediakan
serial komunikasi UART TTL (5V), yang tersedia pada pin digital 0 (RX) dan 1 (TX).
Sebuah Atmega 16U2 pada channel board serial komunikasinya melalui USB dan
muncul sebagai sebuah port virtual ke software pada komputer. Firmware 16U2
menggunakan driver USB COM standar, dan tidak ada driver eksternal yang
dibutuhkan. Bagaimanapun, pada Windows, sebuah file inf pasti dibutuhkan. Software
Arduino mencakup sebuah serial monitor yang memungkinkan data tekstual terkirim ke
dan dari board Arduino. LED RX dan TX pada board akan menyala ketika data sedang
ditransmit melalui chip USB-to-serial dan koneksi USB pada komputer (tapi tidak untuk
komunikasi serial pada pin 0 dan 1).
4) Programming
Arduino UNO dapat diprogram dengan software Arduino (download). Pilih “Arduino
Uno dari menu Tools > Board(termasuk mikrokontroler pada board). Untuk lebih jelas,
lihat referensi dan tutorial. ATmega328 pada Arduino Uno hadir dengan sebuah
bootloader yang memungkinkan kita untuk mengupload kode baru ke ATmega328
tanpa menggunakan pemrogram hardware eksternal. ATmega328 berkomunikasi
menggunakan protokol STK500 asli (referensi, file C header)
Kita juga dapat membypass bootloader dan program mikrokontroler melalui
kepala/header ICSP (In-Circuit Serial Programming); lihat instruksi untuk lebih jelas
Sumber kode firmware ATmega16U2 (atau 8U2 pada board revisi 1 dan revisi 2)
tersedia. ATmega16U2/8U2 diload dengan sebuah bootloader DFU, yang dapat
diaktifkan dengan:
Pada board Revisi 1: Dengan menghubungkan jumper solder pada belakang board
(dekat peta Italy) dan kemudian mereset 8U2
Pada board Revisi 2 atau setelahnya: Ada sebuah resistor yang menarik garis HWB
8U2/16U2 ke ground, dengan itu dapat lebih mudah untuk meletakkan ke dalam
mode DFU. Kita dapat menggunakan software Atmel’s FLIP (Windows)
atau pemrogram DFU (Mac OS X dan Linux) untuk meload sebuah firmware baru.
Atau kita dapat menggunakan header ISP dengan sebuah pemrogram eksternal
(mengoverwrite bootloader DFU). Lihat tutorial user-contributed ini untuk informasi
selengkapnya.
7. Untuk mengubah nilai tahanan dari Resistor adalah dengan mengklik 2x Resistor
pada area kerja, pada kolom “Resistance” ubahlah nilainya sesuai nilai Resistor yang
digunakan, sehingga muncul jendela seperti berikut:
8. Setelah selesai membuat rangkaian, langkah selanjutnya adalah membuat source code
untuk dimasukkan ke dalam Arduino pada Sketch.
9. Selanjutnya klik “Verify” pada toolbar, fungsinya untuk mengecek coding yang kita
buat sudah benar atau masih ada yang salah.
10. Jika coding yang telah kita buat benar, kemudian carilah hasil kompailer tersebut
yang berekstensi *.hex
15. Setelah itu LED pada rangkaian akan berubah warna, artinya simulasi telah berhasil
(LED telah menyala)
e. Apabila setelah percobaan step 1 dan tidak eror, maka kembali melanjutkan untuk step
2 dan seterusnya.
f. Mengulangi langkah 9 sampai selessai pada percobaan A
Gambar 6.1. Rangkaian Percobaan 4.1 dengan 8 LED Menyala Secaraa Bersamaan
Syntax Program
Gambar 6.2. Syntax Arduino 8 LED yang Menyala Secara Bersamaan
Timing Diagram
Analisa Pemograman
Pada percobaan pertama ini hal yang pertama kali dilakukan ialah
mensimulasikan padaboard arduino di Proteus. Seperti pada gambar 6.1.
diatas, ada delapan buah LED yang masing-masing dihubungkan dengan pin
2,3,4,5,6,7, 8, dan 9 pada board arduino, kemudian dihubungkan pula dengan
ground.
Timing Diagram
Masing-masing pin ditulils dua kali dengan pulsa HIGH dan LOW,
sehingga saat diimplementasikan pada board Arduino, LED akan menyala.
Statement delay; ditulis setiap setelah menlis statement digitalWrite (pin LED,
kondisi); delay yang digunakan pada percobaan ini hanya menggunakan 100 dari
1000 ms, Jika coding program yang di buat seperi pada gambar 6.6, maka
kedelapan LED akan menyala dan mati secara bersamaan.
Gambar 6.12. Rangkaian Traffic Light Kondisi 4
Syntax Program
Gambar 6.17. Syntax Arduino RangkaianTraffic Light
Timing Diagram
Analisa Program
Pada percobaan ketiga ini, menggunakan rangkaian Traffic Light seperti
yang terlihat pada gambar diatas. Dimana menggunakan 12 pin Arduino yang
menjadi output. Adapun traffic light yang digunakan pada percobaan ini ialah
jenis traffic light empat arah, dimana terdapat empat buah LED yang terdiri LED
berwarna_merah, kuning, dan hijau.
Adapun cara menulis bahasa pemrograman untuk menyalaka traffic light di pin 2
sampai pin 13 seperti pada gambar 6.17. Pada percobaan ini menggunkan bentuk
integer untuk lebih memudahkan memahami perubahan warna dari waktu ke waktu.
Untuk membuat Syntax program pada traffic light, hal pertama yang dilakkukan
ialah membuat timing diagramnya agar lebih mudah menentukan penulisan coding.
Adapun timing diagramnya dapat dilihat pada gambar 6.18. Setelah memerhatikan
perubahan Traffic Light 4 arah diketahui terdapat delapan kondisi. Adapun detail
dari ke-delapan kondisi tersebut tertera pada table 6.1. dibawah ini.
Tabel 6.1. 8 kondisi Traffic Light empat arah
Kond Kondi Kondi Kondi Kondi Kondi Kondi Kondi
isi 1 si 2 si 3 si 4 si 5 si 6 si 7 si 8
CN1 H1 High Low Low Low Low Low Low Low
K1 Low High Low Low Low Low Low High
M1 Low Low High High High High High Low
CN2 H2 Low Low High Low Low Low Low Low
K2 Low High Low High Low Low Low Low
M2 High Low Low Low High High High High
CN3 H3 Low Low Low Low High Low Low Low
K3 Low Low Low High Low High Low Low
M3 High High High Low Low Low High High
CN4 H4 Low Low Low Low Low Low High Low
K4 Low Low Low Low Low High Low High
M4 High High High High High Low Low Low
Dalam Hal ini , pertama-tama jalur 1 menyalakan lampu hijau , oleh karena itu lampu
merah yang sesuai disemua jalur lainnya dihidupkan. Setelah delay yang telah ditentukan
sebelumnya yang menyatakan waktu 7 detik lampu hijau dijalur 3 harus dinyalakan dan jalur 1
harus dimatikan .
Sebagai indikator peringatan, lampu kuning di jalur 1 disetel untuk menunjukan bahwa
lampu merah akan menyala . Demikian pula lampu kuning di jalur 3 juga dinyalakan sebagai
indikasi bahwa lampu hijau akan dinyalakan . LED Kuning di jalur 1 dan 3 dinyalakan dalam
durasi waktu yang cepat ,katakan 3 detik setelah lampu merah di jalur 1 dinyalakan dan lampu
hijau di jalur 3 dinyalakan
Lampu Hijau di jalur 3 juga dinyalakan untuk waktu yang telah ditentukan
dan proses bergerak maju menuju jalur 3 dan akhirnya ke jalur 2 . sistem kemudian
loop kembali ke lane 1 dimana proses yang disebutkan diatas akan diulangi lagi.
Masing-masing pin dihubungkan dengan 12 LED dan dan membuat program
sesuai dengan prinsip diatass sehingga pada saat diimplementasikan pada board
arduino, LED akan menyala. Statement delay; ditulis setiap setelah menulis
statement digitalWrite (pin LED, kondisi);. Sehingga pada saat diimplementasikan
pada board arduino traffic light akan menyala sesuai prinsipnya.
Setelah proses Sketch selesai, dilakukan verify untuk mengecek kesalahan
program yang dibuat dan mencari hasil kompailer tersebut yang berekstensi *.hex
lalu menyalin lokasi file HEX yang telah dicopy pada bagian program file setelah
menekan arduino pada proteus untuk melakukan simulasi.dan melakukan proses
upload menggunakan USB ke arduino.
Pada percobaan pertama , Karena proyek ini adalah pengontrol lampu lalu
lintas, Rangkaian terdiri dari dari banyak LED (12 LED) karena menerapkan
lampu lalu lintas di persimpangan 4 arah, Proyek ini adalah representasi
sederhana dari pengontrol lampu lalu lintas dan karenanya tidak ada komponen
tambahan lainnya yang digunakan. Pada percobaan ini dibutuhkan 3 LED warna :
Merah, kuning dan Hijau di setiap persimpangan. Persimpangan dibagi menjadi
empat jalur : Jalur1 , Jalur 2 , Jalur 3 dan Jalur 4.
Langkah pertama yang dilakukan adalah mensimulasikan pada board arduino di
Proteus. Seperti pada gambar di atas, semua LED dihubungkan dengan pin 2
sampai pin 13 melalui masing-masing resistor pembatas pada board arduino,
kemudian dihubungkan pula dengan ground.
VII. KESIMPULAN
Dalam percobaan ini , Software Proteus digunakan untuk mensimulasikan
rangkaian percobaan sebelum dieksekusi di board modul Arduino Uno.
Dari percobaan ini, dapat disimpulkan bahwa Arduino Uno merupakan salah satu
mikrokontroler yang dapat digunakan dengan melakukan pengunduhan syntax
program yang telah diverifikasi pada IDE Arduino sebelumnya. Modul board
Arduino Uno digunakan untuk menampilkan secara virtual program yang telah
dibuat. Adapun bahasa pemrograman yang digunakan adalah bahasa C campur
Bahasa Java dimana tata cara penulisan (syntax) sangat perlu diperhatikan karena
apabila terjadi kesalahan penulisan maka program tidak dapat dijalankan (error).
Percobaan ini praktikan mensimulasikan proteus dengan 8 running LED yang
dinyalakan oleh mikro arduino dan menyalakan traffic light sesuai prinsip
kerjanya menggunakan timing diagram .
Dapat disimpulkan bahwa setelah simulasi Running led (8 LED) dan Rangkaian
pengendali Traffic Light dan behasil maka langkah selanjutnya yaitu melakukan
proses upload dan memilih port yang terhubung kekomputer dan
diimplementasikan pada Modul board Arduino Uno
http://belajar-dasar-pemrograman.blogspot.com/2013/03/arduino-
uno.html#ixzz647qjUMXQ
https://inilhohadi.wordpress.com/2010/10/27/teori-led/
https://docplayer.info/58873095-Bab-ii-landasan-teori-mikrokontroler-arduino-uno-
r3-atmega328-arduino-memiliki-14-pin-input-output-yang-mana-6-pin.html
https://toleinnovator.blogspot.com/2018/02/pengenalan-arduino.html
https://prog80.blogspot.com/2015/09/pengenalan-arduino-uno-r3.html