RESUME SISTEMATIS MIKROKONTROLLER
Nama kelompok :
1. Irfan Lukmana (244101070016)
2. M. Maulana Sanjaya (244101070089)
PROGRAM STUDI D4-TEKNIK ELEKTRONIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
Disusun untuk memenuhi nilai matakuliah Sistem Mikrokontroler Semester Ganjil
Tahun Akademik 2025/2026
Pada pertemuan kali ini, kita mempelajari dasar-dasar penggunaan mikrokontroler
dengan berbagai perangkat lunak pendukung seperti Wokwi, Proteus, Arduino IDE,
AVRDUDE, dan USBASP. Materi mencakup cara membuat simulasi LED berkedip, instalasi
compiler serta IDE, proses upload program ke mikrokontroler, hingga pemahaman tentang port
input/output beserta fungsi register dan skema rangkaiannya. Dengan praktik ini, mahasiswa
diharapkan mampu memahami alur pemrograman mikrokontroler mulai dari penulisan kode,
kompilasi, upload, hingga pengujian melalui simulasi maupun perangkat keras.
1. TOOLS
1.1 Wokwi
Pada projek ini digunakan Wokwi untuk membuat simulasi LED yang menyala
dan padam secara bergantian dengan jeda waktu tertentu (delay). Simulasi ini
memungkinkan kita melihat bagaimana program sederhana dapat mengontrol LED
sehingga dapat berkedip sesuai dengan perintah yang ditulis dalam kode. Penggunaan
delay pada program berfungsi untuk memberi jeda waktu antara kondisi LED menyala
dan padam, sehingga pola kedipan terlihat jelas.
Program LED kedap-kedip ini sangat bermanfaat untuk pemula karena melatih
pemahaman dasar pemrograman mikrokontroler dan cara kerja pin output. Dengan
percobaan sederhana ini, kita dapat memahami konsep waktu, kontrol alur, serta
bagaimana instruksi digital diterapkan ke perangkat keras. Proyek ini juga bisa menjadi
dasar untuk pengembangan rangkaian yang lebih kompleks di kemudian hari.
1.2 Proteus
Proses pertama dimulai dengan instalasi WinAVR dan Proteus sebagai
perangkat lunak utama yang digunakan. WinAVR berfungsi sebagai compiler
untuk mengubah kode program menjadi firmware yang dapat dijalankan pada
mikrokontroler, sementara Proteus digunakan sebagai aplikasi simulasi rangkaian
elektronik. Setelah kedua aplikasi terpasang, dilakukan pembuatan proyek baru
menggunakan mikrokontroler ATmega328P. Firmware hasil kompilasi dari
WinAVR kemudian ditambahkan ke dalam proyek agar mikrokontroler dapat
menjalankan instruksi yang dibuat.
Selanjutnya, dilakukan pembuatan program sederhana untuk menyalakan
LED secara berkedip. Kode program ditulis melalui editor kode program yang
tersedia dan dikompilasi menggunakan WinAVR. Firmware yang dihasilkan
kemudian dimasukkan ke dalam komponen ATmega328P di Proteus. Setelah
rangkaian simulasi selesai dirancang, program dijalankan untuk melihat hasilnya.
LED berkedip sesuai instruksi menandakan bahwa proses instalasi, kompilasi,
pemrograman, dan simulasi berjalan dengan benar.
1.3 IDE Arduino
Langkah pertama dalam praktik ini adalah melakukan instalasi Arduino
IDE sebagai perangkat lunak utama untuk menulis dan mengompilasi program.
Setelah instalasi selesai, dibuat sebuah sketch baru di dalam Arduino IDE sebagai
tempat untuk menuliskan kode program. Sketch bawaan yang muncul kemudian
dihapus agar program yang digunakan lebih terarah dan sesuai kebutuhan.
Selanjutnya, kode dari program best practice-1 disalin dan ditempelkan ke dalam
sketch baru tersebut.
Tahap berikutnya adalah melakukan proses kompilasi sketch
menggunakan Arduino IDE. Proses ini akan menghasilkan file biner atau
firmware yang siap dijalankan pada mikrokontroler ATmega328. Hasil kompilasi
berupa folder yang berisi file program kemudian disalin. Folder tersebut sangat
penting karena berisi program yang sudah diterjemahkan oleh compiler menjadi
instruksi yang dapat dipahami mikrokontroler.
Setelah folder hasil kompilasi tersedia, file program yang dihasilkan
dimasukkan ke dalam Proteus. Caranya adalah dengan menempelkan alamat atau
file tersebut pada field program file di properti ATmega328 yang digunakan pada
simulasi best practice-1. Dengan semua konfigurasi selesai, simulasi dijalankan
untuk melihat hasil eksekusi program. Jika berjalan dengan benar, maka program
yang ditulis di Arduino IDE berhasil diimplementasikan pada Proteus dan dapat
diamati melalui simulasi rangkaian.
2. Uploud Program
2.1 Avrdude, Avrdudess dan USBASP
AVRDUDE telah terpasang secara otomatis bersama WinAVR sebagai
tool utama untuk meng-upload program ke mikrokontroler, kemudian diikuti
dengan instalasi AVRDUDESS yang merupakan versi visual dari AVRDUDE
untuk memudahkan pengguna dalam proses flashing. Setelah itu, perangkat
USBASP dicolokkan ke komputer dan drivernya diinstal menggunakan aplikasi
Zadig agar koneksi antara komputer dan mikrokontroler dapat dikenali dengan
baik. Dengan semua perangkat lunak dan driver sudah siap, AVRDUDESS
dijalankan untuk memilih file program hasil kompilasi, lalu dilakukan proses
upload kode program ke mikrokontroler sehingga instruksi dapat dijalankan
sesuai tujuan.
2.2 IDE Arduino dan USBASP
Proses pemrograman mikrokontroler dimulai dengan mencolokkan
USBASP ke komputer dan menginstal drivernya menggunakan Zadig agar
perangkat dapat dikenali dengan baik. Selanjutnya, pada Arduino IDE dilakukan
pemilihan dongle melalui menu Tools → Programmer, kemudian program
diunggah menggunakan opsi Sketch → Upload Using Programmer. Metode ini
memiliki kelebihan karena memungkinkan konfigurasi fusebits dan lockbits, di
mana fusebits berfungsi mengubah konfigurasi perangkat keras seperti sumber
clock mikrokontroler, sedangkan lockbits berfungsi melindungi kode program
dari pembacaan atau cloning oleh pihak lain.
3. Port Input/Output
Port I/O pada mikrokontroler digunakan untuk mengirim dan menerima logika
digital berupa 0 (low) atau 1 (high) melalui pin-pin yang tersedia. Fungsinya sangat
penting dalam interaksi mikrokontroler dengan perangkat eksternal seperti sensor
maupun aktuator, sehingga setiap pin dapat diatur menjadi input atau output sesuai
kebutuhan program.
3.1 Skematik Pull-up dan Pull-down
Pull-up resistor digunakan untuk memastikan kondisi logika pin input berada
pada keadaan high (1) saat tidak ada sinyal yang terhubung. Dengan demikian, pin
tidak berada dalam kondisi floating yang dapat menyebabkan pembacaan data tidak
stabil. Resistor pull-up biasanya dihubungkan antara pin input dan sumber tegangan
positif.
Sebaliknya, pull-down resistor digunakan untuk memastikan kondisi logika pin
input berada pada keadaan low (0) saat tidak ada sinyal masuk. Resistor ini
dihubungkan antara pin input dan ground, sehingga pin memiliki referensi logika
jelas ketika tidak diberi sinyal eksternal. Kedua skema ini sangat membantu dalam
mencegah error pada pembacaan input mikrokontroler.
3.2 Register: DDRx, PORTx, PINx, MCUCR (bit PUD)
Konfigurasi port I/O dikendalikan oleh register, di antaranya DDRx untuk
menentukan arah data (input/output), PORTx untuk mengatur logika high atau low,
dan PINx untuk membaca nilai logika dari pin. Selain itu, MCUCR (bit PUD)
digunakan untuk mengatur fungsi pull-up, sehingga dapat mengaktifkan atau
menonaktifkan resistor pull-up internal pada pin input sesuai kebutuhan program.
3.3 Fungsi Alternatif PORTB
PORTB pada mikrokontroler memiliki fungsi alternatif selain sebagai port I/O
umum. Pin-pin pada PORTB dapat digunakan sebagai jalur komunikasi seperti SPI
(Serial Peripheral Interface), pin kontrol timer/counter, serta fungsi khusus lainnya
yang mendukung berbagai aplikasi perangkat keras.
3.4 Kode Instruksi/Sintaks yang Digunakan
const int ledPin = 13; // mendefinisikan pin LED di pin digital 13 sebagai
konstanta
int status = 0; // mendefinisikan variabel status bertipe integer
void setup() {
pinMode(ledPin, OUTPUT); // mengatur pin 13 sebagai output
}
void loop() {
digitalWrite(ledPin, HIGH); // menyalakan LED (logika 1)
delay(1000); // menunggu 1 detik
digitalWrite(ledPin, LOW); // mematikan LED (logika 0)
delay(1000); // menunggu 1 detik
}