Embedded System Programming Mikrokontroler Dasar
Embedded System Programming Mikrokontroler Dasar
Pengertian Embedded System
Embedded system adalah sistem komputer khusus yang dirancang untuk menjalankan fungsi tertentu atau serangkaian tugas tertentu dalam sebuah perangkat yang lebih besar.
Embedded system adalah kombinasi perangkat keras dan perangkat lunak yang tertanam dalam suatu perangkat untuk mengontrol, memonitor, atau membantu fungsi dari perangkat tersebut.
Contoh Aplikasi Embedded System
Mesin cuci otomatis, mengatur siklus cuci, bilas, dan pengering
Mikrokontroler Arduino / ESP32, mengontrol sensor dan aktuator di sistem smart farming
Smartphone, komponen seperti kamera, fingerprint sensor dikendalikan oleh embedded system
Mobil modern, mengontrol sistem ABS, airbag, mesin, infotainment
ATM, mengelola input pengguna, keamanan, dan transaksi
Arduino (ATmega328)
ESP8266 / ESP32 (WiFi + Bluetooth)
STM32
Raspberry Pi Pico
Pengecekan Kelayakan Mikrokontroler (Ex: Arduino)
Pemeriksaan Fisik
Cek PCB (papan sirkuit): pastikan tidak ada bekas gosong, terbakar, atau korosi
Cek pin dan header: Tidak ada pin yang patah atau bengkok
Cek port USB: Kuat dan tidak longgar
LED power (biasanya warna hijau) menyala saat diberi daya dan LED "L" (pin 13) berkedip saat reset (boot test)
Pengecekan Fungsional
Cek Koneksi Komputer
Colokkan Arduino ke PC/Laptop via USB
Buka Device Manager (Windows) atau port list (Linux/Mac)
Pastikan muncul port baru, misalnya: COM3 atau /dev/ttyUSB0
Gunakan ArduinoIDE
Buka Arduino IDE
Pilih jenis board yang sesuai
Pilih port COM yang sesuai
Upload sketch sederhana seperti Blink:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
Klik Upload
Lihat apakah proses upload sukses dan LED di pin 13 berkedip
✅ Jika sukses → Arduino layak pakai
❌ Jika gagal → lanjut ke langkah troubleshooting di bawah
Troubleshooting jika Gagal Upload
Tidak terdeteksi di PC : Ganti kabel USB, coba port lain, cek driver
Upload gagal (stk500 error): Cek pemilihan board dan port
Arduino mati total: Coba ganti kabel dan cek dengan multimeter
Chip regulator panas: Bisa jadi short circuit – cek solderan & power supply
Spesifikasi Mikrokontroler (Ex: Arduino)
Tegangan Operasi (Logic Level)
5 Volt
Tegangan Input (disarankan)
7–12 Volt
Tegangan Input (batas)
6–20 Volt
Mikrokontroler: ATmega328P
Tegangan: 5V
I/O: 14 digital, 6 analog
Kelebihan: Cocok untuk pemula, banyak tutorial, mudah digunakan
Proyek cocok: Otomatisasi dasar, robot, alarm, smart farming
Mikrokontroler: ATmega328P
Ukuran kecil, cocok untuk PCB permanen
Daya: 5V via USB Mini
Fitur: Hampir sama dengan Uno, tapi lebih ringkas
Proyek cocok: Alat portabel, wearable, miniatur robot
Mikrokontroler: ATmega2560
I/O: 54 digital, 16 analog
Memori besar, cocok untuk proyek besar
Proyek cocok: Smart home kompleks, CNC, robot besar
Pin Mikrokontroler (ex: Arduino UNO)
Arduino Uno R3
Pin digital
posisi: pin 0 sampai 13
Pin PWM (~)
posisi: pin 3,5,6,9,10,11
Pin Analog
posisi: pin A0 sampai A5
Pin SDA
posisi: pin A4 dan SDA
Pin SCL
posisi: A5 dan SCL
Simulasi Penggunaan Arduino Online
Pin Mikrokontroler (Ex: Arduino Uno)
Bahasa Pemograman Dasar Arduino
Bahasa pemograman yang digunakan adalah C++
Beberapa kode dasar dalam arduino
// => sebagai komentar dalam baris
/* .................*/ => sebagai komentar dalam blok (bisa beda baris)
void setup(){ } => bagian program didalam fungsi ini akan dijalankan 1x
void loop(){ } => bagian program didalam fungsi ini akan dijalankan secara terus-menerus
pinMode() => untuk menetapkan pin yang digunakan (INPUT atau OUTPUT)
digitalWrite() => untuk on/off pin yang digunakan
digitalRead() => untuk membaca status tegangan di dalam pin yang digunakan
analogRead() => untuk membaca nilai ADC dari input (sensor)
analogWrite() => untuk on/off pin PWM sesuai pulsa yang dimasukkan (0-255)
delay() => untuk memberikan jeda waktu eksekusi program
Serial.begin() => untuk memulai/mengaktifkan tampilan serial monitor
Serial.print() => untuk mencetak data pada serial monitor dalam 1 baris
Serial.println() => untuk mencetak data pada serial monitor, lalu akan berpindah pada baris berikutnya
Tipe Data dalam Bahasa Pemograman Dasar Arduino
int => digunakan untuk angka yang tidak berkoma (-32,768 sampai 32,767)
long => digunakan untuk angka yang tidak berkoma (2,147,483,648 sampai 2,147,483,647)
float => digunakan untuk angka yang berkoma
double => digunakan untuk angka yang berkoma
String => digunakan untuk data karakter
char => digunakan untuk data karakter tunggal
Variabel dalam Bahasa Pemograman Dasar Arduino
Variabel adalah tempat untuk menyimpan data dalam program Arduino, seperti angka, teks, atau status sensor. Variabel digunakan agar data bisa dipanggil, diubah, dan dihitung di berbagai bagian kode.
Analogi Sederhana: Variabel itu seperti wadah atau kotak yang punya nama. Kamu bisa memasukkan nilai ke dalamnya, mengambil isinya, atau menggantinya.
Contoh
int angka1 = 1;
int angka2 = 2;
int hasil = angka1 + angka2;
Penjelasan
int => tipe data yang akan ditampung dalam variabel yaitu: angka tidak berkoma
angka1 => sebuah variabel untuk menyimpan angka 1
angka2 => sebuah variabel untuk menyimpan angka 2
hasil => sebuah variabel untuk menyimpan hasil penjumlahan dari variabel angka1 dan angka2
Library dalam Bahasa Pemograman Dasar Arduino
Library (pustaka) di Arduino adalah kumpulan kode tambahan yang berisi fungsi-fungsi siap pakai untuk menjalankan perangkat keras (hardware) atau fitur tertentu dengan lebih mudah.
Contoh Library dalam Arduino:
DHT Sensor Library => untuk memnggunakan sensor DHT sebagai indikator suhu dan kelembaban udara
Liquid Crystal I2C => untuk menggunakan LCD
Keypad => untuk menggunakan Keypad
Sebelum digunakan, Library harus diinstal terlebih dulu di dalam software ArduinoIDE
Berikut langkah-langkah instal Library dalam ArduinoIDE
Sambungkan PC/Laptop ke Internet
Buka software "ArduinoIDE"
Klik "Sketch", lalu klik "Include Library"
Klik "Manage Libraries"
Cari library sesuai yang dibutuhkan
Klik "Install"
Tunggu proses instal selesai dan library siap untuk digunakan
Contoh Penggunaan Library
#include <LiquidCrystal_I2C.h> //ini adalah Library yang digunakan
LiquidCrystal_I2C lcd(0x27, 16, 2); //ini adalah objek untuk mengontrol Library
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Smartfarming");
}
void loop() {
}