Selamat datang pada modul praktikum pelatihan divisi Internet of Things (IoT). Mari kita pelajari bersama berbagai perangkat output pada mikrokontroler!
Apa itu Perangkat Output?
Perangkat Output adalah komponen yang bertugas menampilkan hasil pemrosesan data dari mikrokontroler agar dapat dimengerti oleh pengguna atau ditransmisikan ke perangkat lain. Output ini berupa data digital maupun analog yang direfleksikan dalam bentuk visual, suara, atau gerakan mekanis.
Jenis-Jenis Perangkat Output
1. Visual
Komponen yang menghasilkan tampilan visual sebagai respons terhadap sinyal data:
- LED (Light Emitting Diode): Digunakan untuk memberikan indikasi visual, seperti menunjukkan status atau kondisi operasional suatu sistem.
- LCD (Liquid Crystal Display) 16×2: Media tampilan berbasis kristal cair yang terdiri dari 16 kolom dan 2 baris karakter untuk menampilkan teks atau angka.
2. Audio
Komponen yang mengubah sinyal listrik/digital dari mikrokontroler menjadi gelombang suara:
- Speaker: Perangkat audio elektro-akustik untuk reproduksi suara atau musik.
- Buzzer: Komponen penghasil getaran suara gelombang bunyi.
- Active Buzzer: Langsung menghasilkan nada tunggal saat diberi tegangan.
- Passive Buzzer: Memerlukan sinyal frekuensi (seperti fungsi
tone()PWM) untuk mengatur tinggi-rendahnya nada.
3. Aktuator (Gerakan)
Komponen mekanis/elektrik yang merespon sinyal kontrol dengan gerakan fisik:
- Motor Servo: Motor DC sistem tertutup yang dilengkapi sensor posisi (potensiometer) dan rangkaian kontrol, mampu berputar presisi pada sudut tertentu (0°, 90°, hingga 180°).
- Motor Stepper: Motor DC yang bergerak berdasarkan langkah (step) diskrit per pulsa digital. Sangat unggul dalam tingkat presisi sudut dan rotasi berulang.
Panduan Praktikum & Kode Program
1. LCD 16×2 I2C
Komponen: Arduino Uno R3, LCD 16×2 dengan Modul I2C, Kabel Jumper.

Skema Skematik Pin:
- GND → GND Arduino
- VCC → 5V Arduino
- SDA → Pin SDA (A4) Arduino
- SCL → Pin SCL (A5) Arduino
#include <Wire.h> // Library komunikasi I2C
#include <LiquidCrystal_I2C.h> // Library LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C umum 0x27
void setup() {
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Nyalakan lampu latar
}
void loop() {
lcd.setCursor(0, 0); // Kolom 0, Baris 0
lcd.print("AMCC");
lcd.setCursor(6, 1); // Kolom 6, Baris 1
lcd.print("IoT");
}
2. Buzzer
Komponen: Arduino Uno R3, Buzzer Pasif/Aktif, Kabel Jumper.
Skema Skematik Pin:
- Kutub Positif (Kaki Panjang) → Pin 2 Arduino
- Kutub Negatif (Kaki Pendek) → GND Arduino
int buzzer = 2; // Deklarasi pin buzzer
void setup() {
pinMode(buzzer, OUTPUT); // Konfigurasi pin sebagai output
}
void loop() {
tone(buzzer, 10); // Frekuensi 10 Hz
delay(2000); // Jeda 2 detik
tone(buzzer, 100); // Frekuensi 100 Hz
delay(2000); // Jeda 2 detik
}
3. Motor Servo
Komponen: Arduino Uno R3, Motor Servo (SG90/MG995), Kabel Jumper.
Skema Skematik Pin:
- GND (Cokelat/Hitam) → GND Arduino
- VCC (Merah) → 5V Arduino
- PWM (Kuning/Oranye) → Pin 6 Arduino
#include <Servo.h>
#define SERVO_PIN 6
Servo myservo; // Inisialisasi objek servo
void setup() {
myservo.attach(SERVO_PIN);
}
void loop() {
myservo.write(0); // Posisi 0 derajat
delay(1000);
myservo.write(90); // Posisi 90 derajat
delay(1000);
myservo.write(180); // Posisi 180 derajat
delay(1000);
myservo.write(90); // Kembali ke 90 derajat
delay(1000);
}
4. Motor Stepper
Komponen: Arduino Uno R3, Motor Stepper & Driver, Kabel Jumper.
Skema Skematik Pin:
- A- → Pin 13 Arduino
- A+ → Pin 12 Arduino
- B+ → Pin 11 Arduino
- B- → Pin 10 Arduino
#include <Stepper.h>
const int stepsPerRevolution = 100;
Stepper myStepper(stepsPerRevolution, 10, 11, 12, 13);
void setup() {
myStepper.setSpeed(60); // Kecepatan RPM
}
void loop() {
myStepper.step(stepsPerRevolution / 2); // 90 derajat searah jarum jam
delay(500);
myStepper.step(stepsPerRevolution / 2); // 180 derajat
delay(500);
myStepper.step(-stepsPerRevolution / 1); // Kembali ke 0 derajat
delay(500);
myStepper.step(-stepsPerRevolution / 1); // -180 derajat berlawanan jarum jam
delay(500);
myStepper.step(stepsPerRevolution); // Kembali ke 0 derajat
delay(500);
}