Pemrograman & Aplikasi Mikrokontroler

Untuk Siswa SMK Jurusan Teknik Audio Video Fase F

Selamat Datang di Web Pembelajaran Pemrograman dan Aplikasi Mikrokontroler! ✨

Mari jelajahi dunia teknologi dan inovasi melalui pembelajaran interaktif yang dirancang khusus untuk siswa SMK fase F. Di sini, kalian akan belajar memahami tentang dasar-dasar pemrograman, logika pemrograman, fungsi dan cara kerja mikrokontroler, serta aplikasinya di kehidupan sehari-hari.

Apa itu Mata Pelajaran Pemrograman dan Aplikasi Mikrokontroler?

Mata pelajaran Pemrograman dan Aplikasi Mikrokontroler pada fase F merupakan bagian dari kurikulum kejuruan di SMK, khususnya untuk program keahlian Teknik Audio Video (TAV). Mata pelajaran ini dirancang untuk membekali peserta didik dengan pengetahuan dan keterampilan dalam merancang, memrogram, serta menerapkan sistem berbasis mikrokontroler pada perangkat elektronik.

Melalui mata pelajaran ini, siswa mempelajari dasar-dasar pemrograman, penggunaan bahasa pemrograman tingkat tinggi (seperti C/C++ untuk Arduino), serta teknik pengendalian perangkat elektronik melalui mikrokontroler. Kompetensi yang dibangun mencakup pemahaman terhadap logika program, rangkaian elektronik, antarmuka sensor dan aktuator, hingga penerapan mikrokontroler dalam proyek nyata seperti sistem otomatisasi, audio elektronik, dan perangkat pintar.

Ilustrasi Mikrokontroler

Dasar-Dasar Mikrokontroler

Pada materi kali ini kita akan mempelajari berbagai hal tentang dasar-dasar mikrokontroler. Pembahasan dimulai dari pengertian mikrokontroler serta perbedaannya dengan mikroprosesor, lalu definisi Arduino, kelebihan Arduino dan jenis-jenis Arduino.

Apa perbedaan antara Mikroprosesor dan Mikrokontroler?

Mikroprosesor dan mikrokontroler adalah komponen internal perangkat elektronik. Mikroprosesor adalah unit pemrosesan yang sangat kecil di dalam CPU. Mikroprosesor adalah sirkuit terpadu tunggal pada chip komputer yang melakukan berbagai fungsi aritmatika dan logika pada sinyal digital. Beberapa lusin mikroprosesor bekerja sama di dalam server beperforma tinggi untuk pemrosesan data dan analitik.

Di sisi lain, mikrokontroler adalah unit komputasi dasar di dalam perangkat elektronik pintar, seperti mesin cuci dan termostat. Mikrokontroler adalah komputer yang sangat kecil dengan sistem RAM, ROM, dan I/O sendiri, semuanya tertanam pada satu chip. Mikrokontroler dapat memproses sinyal digital dan merespons input pengguna, tetapi kapasitas komputasinya terbatas.

Apa persamaan antara Mikroprosesor dan Mikrokontroler?

Mikroprosesor dan mikrokontroler adalah chip komputer terpusat yang memberikan kecerdasan pada komputer pribadi dan perangkat elektronik. Keduanya dibuat dengan sirkuit terpadu semikonduktor dan berbagi bagian internal tertentu.

Sirkuit terpadu

Mikroprosesor dan mikrokontroler adalah komponen semikonduktor yang dibuat di atas sirkuit terpadu. Sirkuit terpadu adalah chip persegi atau persegi panjang yang sangat kecil yang berisi ribuan atau bahkan jutaan komponen elektronik. Sirkuit terpadu memungkinkan rekayasawan untuk mengurangi ukuran sirkuit elektronik.

CPU

Baik mikroprosesor maupun mikrokontroler memiliki CPU. CPU adalah bagian terpusat dari chip komputer yang memproses instruksi yang disediakan oleh aplikasi atau firmware. CPU juga memiliki modul unit aritmatika logika (ALU) khusus. ALU menghitung nilai matematika dan mengevaluasi masalah logika berdasarkan instruksi komputer.

Register

Register adalah modul memori yang digunakan CPU untuk diproses. CPU menyimpan instruksi atau data biner untuk sementara sebelum, selama, dan setelah diproses. Baik mikroprosesor maupun mikrokontroler dibuat dengan register internal meskipun mikrokontroler sering memiliki lebih banyak register daripada mikrokontroler

Perbedaan arsitektur: Mikroprosesor vs Mikrokontroler

Meskipun mengambil bentuk chip komputer, mikroprosesor dan mikrokontroler dibuat dengan arsitektur yang berbeda. Mikroprosesor direkayasa dengan arsitektur von Neumann, tempat program dan data berada dalam modul memori yang sama. Sementara itu, mikrokontroler menggunakan arsitektur Harvard, yang memisahkan memori program dari ruang data.

Mikroprosesor memiliki komponen sirkuit yang lebih terpadu daripada mikrokontroler. Perbedaan arsitektur ini memengaruhi pertimbangan desain untuk mikroprosesor dan mikrokontroler dalam komputasi dan aplikasi sistem tertanam.

Aspek Mikroprosesor Mikrokontroler
Memori Membutuhkan memori eksternal dan penyimpanan data. Modul memori on-chip (ROM, RAM).
Periferal Membutuhkan bagian tambahan, terhubung dengan bus eksternal. Periferal on-chip (timer, port I/O, konverter sinyal).
Kapasitas Komputasi Mampu menangani tugas komputasi yang kompleks. Terbatas pada logika aplikasi tertentu.
Kecepatan Clock Sangat cepat (rentang GHz). Cepat, tetapi lebih lambat dari mikroprosesor (kHz–MHz).
Penggunaan daya Penggunaan daya tinggi. Tidak ada mode hemat daya. Menggunakan daya minimal. Mode hemat daya bawaan.
Sistem operasi Membutuhkan sistem operasi. Sistem operasi bersifat opsional untuk beberapa mikrokontroler.
Konektivitas Menangani transfer data berkecepatan tinggi. Mendukung USB 3.0 dan Gigabit Ethernet Mendukung komunikasi kecepatan rendah hingga sedang. Antarmuka Periferal Serial (SPI) dan I²C. Pemancar penerima asinkron universal (UART).
Biaya Mahal karena membutuhkan komponen tambahan. Lebih murah karena satu sirkuit terpadu menyediakan berbagai fungsi.
Kasus penggunaan Untuk komputasi generik, atau sistem yang membutuhkan kapasitas komputasi yang kuat. Untuk sistem yang ringkas, bertenaga baterai, atau perangkat pemrosesan logika.

Mikrokontroler ATmega328P dan Minimum Sistem

Mikrokontroler merupakan sebuah komponen elektronik yang berfungsi sebagai pusat kendali dalam suatu sistem. Salah satu mikrokontroler yang paling banyak digunakan dalam pembelajaran maupun proyek elektronika adalah ATmega328P. Mikrokontroler ini termasuk dalam keluarga AVR 8-bit dan dikenal karena kemudahannya dalam pemrograman serta kestabilannya dalam berbagai aplikasi. ATmega328P digunakan sebagai inti dari board Arduino UNO, sehingga sangat familiar bagi pemula. Di dalam satu chip kecil ini sebenarnya sudah terdapat berbagai komponen penting seperti CPU (otak pemroses), memori, serta pin input dan output. Dengan adanya komponen-komponen tersebut, mikrokontroler mampu membaca data dari sensor, mengolahnya sesuai program, lalu memberikan output berupa aksi seperti menyalakan LED, menggerakkan motor, atau menampilkan data. Secara spesifikasi, ATmega328P bekerja dengan arsitektur 8-bit dan memiliki kecepatan hingga 16 MHz. Memori yang tersedia terdiri dari Flash sebesar 32 KB untuk menyimpan program, SRAM sebesar 2 KB untuk pengolahan data sementara, serta EEPROM sebesar 1 KB untuk penyimpanan data permanen. Selain itu, mikrokontroler ini juga dilengkapi dengan fitur ADC (Analog to Digital Converter) yang memungkinkan pembacaan sinyal analog dari sensor.

Agar mikrokontroler dapat bekerja dengan baik, diperlukan suatu rangkaian dasar yang disebut sebagai minimum sistem. Minimum sistem adalah rangkaian paling sederhana yang harus ada supaya mikrokontroler bisa menjalankan programnya. Tanpa rangkaian ini, ATmega328P tidak akan dapat berfungsi sebagaimana mestinya. Dalam minimum sistem, komponen pertama yang sangat penting adalah catu daya. Mikrokontroler membutuhkan tegangan, biasanya sebesar 5 volt, agar dapat aktif dan bekerja. Selain itu, diperlukan juga kristal oscillator yang berfungsi sebagai penentu kecepatan kerja sistem. Tanpa clock ini, mikrokontroler tidak memiliki “detak” untuk menjalankan instruksi program. Rangkaian reset juga menjadi bagian penting dalam minimum sistem. Dengan adanya tombol reset, pengguna dapat mengulang jalannya program dari awal ketika terjadi kesalahan atau saat ingin memulai ulang sistem. Di samping itu, biasanya ditambahkan kapasitor kecil sebagai penstabil tegangan agar sistem tidak terganggu oleh noise.

Hal lain yang tidak kalah penting adalah proses pemrograman. Untuk memasukkan program ke dalam ATmega328P, diperlukan alat bantu seperti programmer (misalnya USBasp) atau menggunakan Arduino sebagai perantara. Program yang sudah dibuat di komputer akan diunggah ke dalam memori mikrokontroler agar dapat dijalankan. Jika diperhatikan, board Arduino sebenarnya sudah menggabungkan semua komponen minimum sistem tersebut dalam satu papan. Oleh karena itu, Arduino sering digunakan sebagai alat belajar karena lebih praktis. Namun, dalam pembuatan produk nyata, penggunaan minimum sistem ATmega328P lebih disukai karena lebih hemat biaya dan dapat disesuaikan dengan kebutuhan. Dengan memahami ATmega328P dan minimum sistemnya, siswa tidak hanya mampu menggunakan Arduino, tetapi juga mengerti konsep dasar bagaimana sebuah sistem mikrokontroler bekerja dari tingkat paling sederhana hingga aplikasi yang lebih kompleks.

Definisi Arduino

Arduino adalah platform elektronik open-source yang terdiri dari perangkat keras (hardware) berupa mikrokontroler dan perangkat lunak (software) berupa Arduino IDE. Arduino dirancang untuk memudahkan pembuatan proyek berbasis elektronik, baik untuk pemula maupun profesional.

Komponen Utama Arduino:

1. Hardware (Board Arduino UNO)

2. Software (Arduino IDE)

Arduino mampu membaca inputan berupa sensor, tombol dan mengolahnya menjadi output seperti mengaktifkan motor, menyalakan LED dan sebagainya.

Kelebihan Arduino

Jenis Arduino

Jenis-jenis Arduino

Arduino memiliki berbagai jenis papan mikrokontroler yang dirancang untuk kebutuhan yang berbeda-beda. Setiap jenis Arduino memiliki ukuran, jumlah pin, dan kemampuan yang berbeda. Beberapa jenis Arduino digunakan untuk pembelajaran dasar, sedangkan jenis lainnya digunakan untuk proyek yang lebih kompleks seperti robotika, Internet of Things (IoT), dan sistem otomatisasi.

Berikut ini adalah beberapa jenis board Arduino yang umum digunakan:

Jenis Arduino Keterangan Singkat
Arduino Uno Board paling populer untuk pemula, cocok untuk belajar dasar mikrokontroler.
Arduino Leonardo Memiliki kemampuan sebagai perangkat USB seperti keyboard atau mouse.
Arduino Mega 2560 Memiliki banyak pin I/O, cocok untuk proyek besar dan kompleks.
Arduino LilyPad Dirancang untuk wearable (pakaian pintar), berbentuk tipis dan fleksibel.
Arduino Mega ADK Dapat terhubung dengan perangkat Android untuk kontrol dan komunikasi.
Arduino Fio Digunakan untuk aplikasi wireless, mendukung modul XBee.
Arduino Ethernet Memiliki port Ethernet untuk koneksi jaringan/internet.
Arduino Pro Board kecil untuk sistem embedded, biasanya tanpa USB onboard.
Arduino BT Dilengkapi modul Bluetooth untuk komunikasi nirkabel.
Arduino Nano Ukuran kecil, cocok untuk proyek mini dan breadboard.
Arduino Mini Versi lebih kecil dari Arduino, hemat ruang dan daya.
Arduino Pro Mini Ukuran sangat kecil, cocok untuk proyek permanen dan hemat biaya.

Pemrograman Arduino UNO

Disini kita akan mempelajari tentang apa itu Arduino UNO, struktur Arduino UNO, cara menginstall Software Arduino UNO, pengenalan software Arduino IDE dan contoh program sederhananya.

Arduino UNO

Arduino Uno adalah salah satu board mikrokontroler paling populer dalam ekosistem Arduino. Board ini berbasis ATmega328P dan sering digunakan dalam proyek elektronik, pemrograman mikrokontroler, serta Internet of Things (IoT).

Arduino UNO
  • Mikrokontroler: ATmega328P
  • Tegangan Operasional: 5V
  • Tegangan Input (disarankan): 7-12V
  • Tegangan Input (batas maksimum): 6-20V
  • Jumlah Pin Digital I/O: 14 (6 di antaranya bisa digunakan sebagai PWM)
  • Jumlah Pin Analog: 6
  • Memori Flash: 32 KB (0,5 KB digunakan oleh bootloader)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Clock Speed: 16 MHz
  • Port USB: Tipe B (digunakan untuk komunikasi dan upload program)
  • Komunikasi: UART (Serial), I2C, SPI
  • Konektor Power: Jack DC dan port USB
  • Regulator Tegangan: 5V dan 3.3V
  • Dimensi: 68.6 mm × 53.4 mm
  • Berat: Sekitar 25 gram

Struktur Arduino UNO

Struktur Arduino UNO

Arduino Uno terdiri dari berbagai bagian utama yang memiliki fungsi masing-masing. Berikut adalah beberapa bagian utama yang terdapat pada Arduino Uno:

Bagian Fungsi
Mikrokontroler Pusat pengolah data dan menjalankan program yang telah diunggah.
Digital Input/Output Digunakan untuk membaca dan mengirim sinyal digital seperti LED atau tombol.
PWM Menghasilkan sinyal analog semu untuk mengatur kecerahan LED atau kecepatan motor.
Analog Input Membaca sinyal analog dari sensor seperti sensor suhu atau potensiometer.
USB Connection Menghubungkan Arduino dengan komputer untuk upload program dan sumber daya.
DC Power Sumber tegangan dari adaptor atau baterai.
Voltage Regulator Menstabilkan tegangan agar sesuai kebutuhan Arduino.
Power LED Indikator bahwa Arduino mendapatkan sumber listrik.
TX dan RX LED Indikator proses komunikasi data Arduino dengan komputer.
Reset Button Mengulang kembali program dari awal.
Ground (GND) Jalur negatif atau referensi tegangan.
Pin 5V dan 3.3V Memberikan tegangan keluaran ke sensor atau modul.
AREF Referensi tegangan untuk pembacaan analog.

Dengan memahami struktur Arduino Uno, siswa dapat mengetahui fungsi setiap bagian sehingga lebih mudah dalam merancang rangkaian berbasis mikrokontroler.

Prosedur Menggunakan Arduino Board

Prosedur Menggunakan Board Arduino Uno
  • Menyiapkan Arduino Board dan Kabel USB
  • Men-download Software Arduino
    https://www.arduino.cc/en/Main/Software
  • Menghubungkan Arduino Board ke Komputer

Instalasi Arduino IDE

Download Software Arduino

https://www.arduino.cc/en/Main/Software

Ikuti langkah-langkah berikut:

Arduino UNO

Pengenalan IDE Arduino

IDE Arduino (Integrated Development Environment) adalah perangkat lunak yang digunakan untuk menulis, mengedit, mengompilasi, dan mengunggah kode ke board mikrokontroler Arduino. IDE ini mendukung bahasa pemrograman berbasis C/C++ dan menyediakan berbagai fitur untuk mempermudah pengembangan proyek elektronik berbasis Arduino.

Berikut adalah beberapa menu yang ada di software Arduino IDE beserta penjelasannya:

Struktur Pemrograman Arduino IDE

Komentar

Digunakan untuk memberikan catatan atau penjelasan dalam kode, tanpa mempengaruhi jalannya program.

// Ini adalah komentar satu baris

Include Library

Jika program menggunakan library tambahan, harus dimasukkan di awal dengan #include.

#include <Wire.h>        // Library untuk komunikasi I2C
#include <LiquidCrystal.h> // Library untuk LCD

Deklarasi Variabel dan Konstanta

Digunakan untuk menyimpan data yang akan digunakan dalam program.

int ledPin = 13;      // Variabel untuk menyimpan pin LED
const int sensorPin = A0; // Konstanta untuk pin sensor

Fungsi setup()

Fungsi ini akan dieksekusi sekali saat Arduino dinyalakan atau di-reset. Biasanya digunakan untuk inisialisasi pin, sensor, komunikasi serial, dan sebagainya.

void setup() {
  pinMode(ledPin, OUTPUT);   // Mengatur pin 13 sebagai output
  Serial.begin(9600);        // Memulai komunikasi serial dengan baud rate 9600
}

Fungsi loop()

Fungsi ini akan dijalankan berulang kali selama Arduino menyala. Biasanya digunakan untuk membaca sensor, mengontrol aktuator, atau melakukan proses lainnya.

void loop() {
  digitalWrite(ledPin, HIGH); // Menyalakan LED
  delay(1000);                // Tunggu 1 detik

  digitalWrite(ledPin, LOW);  // Mematikan LED
  delay(1000);                // Tunggu 1 detik
}

Sintaks

  • ; (semicolon) : Digunakan untuk mengakhiri sebuah pernyataan.
  • { } (curly braces) : Bagian utama dari bahasa pemrograman C yang digunakan dalam beberapa konstruksi yang berbeda dalam beberapa fungsi.
  • #define : Komponen C yang berguna yang memungkinkan programmer untuk memberi nama untuk nilai konstan sebelum program dikompilasi.

Contoh Kode Program Arduino IDE

int led = 7;

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);
  delay(2000);
  digitalWrite(led, LOW);
  delay(1000);
}
int led = 7; Mendeklarasikan variabel led dengan nilai 7, yang berarti LED akan dihubungkan ke pin digital nomor 7 pada board Arduino.
void setup() { setup() adalah fungsi yang akan dijalankan sekali saat Arduino pertama kali dinyalakan atau di-reset.
pinMode(led, OUTPUT); } Mengatur pin 7 sebagai output, sehingga bisa mengontrol LED (menghidupkan atau mematikan).
void loop() { loop() adalah fungsi yang akan berjalan terus-menerus selama Arduino menyala.
digitalWrite(led, HIGH); Menyalakan LED (mengirim sinyal HIGH atau 5V ke pin 7).
delay(2000); Menunggu 2 detik (2000 milidetik).
digitalWrite(led, LOW); Mematikan LED (mengirim sinyal LOW atau 0V ke pin 7).
delay(1000); } Menunggu 1 detik sebelum siklus diulang kembali.

Video Pembelajaran

Berikut beberapa video pembelajaran untuk membantu memahami materi.

Tutorial Install Arduino IDE

Video pembelajaran ini menjelaskan cara menginstall Arduino IDE untuk pemrograman mikrokontroler.

Pengenalan Fitur-fitur Arduino IDE dan Install Driver

Video pembelajaran ini membahas fitur-fitur utama pada Arduino IDE dan cara Installasi Driver untuk Port Arduino.

Program LED Arduino

Video pembelajaran ini menjelaskan contoh program sederhana LED pada Arduino, dan penjelasan fungsi tiap barisnya.

Asesmen Formatif 1

  1. Apa yang dimaksud dengan mikrokontroler dan apa fungsinya dalam sistem elektronik?
  2. Sebutkan beberapa contoh penerapan mikrokontroler dalam kehidupan sehari-hari!
  3. Perhatikan dua gambar berikut:
    Mikroprosesor vs Mikrokontroler
    Apa perbedaan penting dalam komponen fisik yang Anda lihat? Jelaskan hubungan antara bentuk fisik dan fungsinya!
  4. Gambarkan atau jelaskan struktur dasar dari mikrokontroler Arduino UNO!
  5. Mengapa mikrokontroler lebih banyak digunakan dalam sistem otomatis dibandingkan rangkaian manual?

Asesmen Formatif 2

  1. Apa yang dimaksud dengan Arduino IDE dan apa fungsinya?
  2. Sebutkan langkah-langkah dasar untuk menjalankan program pada Arduino!
  3. Apa yang dimaksud dengan sketch pada Arduino?
  4. Seorang siswa gagal mengunggah program ke board Arduino. Sebutkan tiga langkah troubleshooting yang dapat dilakukan dan jelaskan alasan logisnya!
  5. Jelaskan prinsip kerja program LED berkedip pada Arduino!