Modul Praktikum IoT: Perangkat Output (LED, LCD 16×2, Buzzer, Servo, & Stepper)

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);
}

Leave a comment

Your email address will not be published. Required fields are marked *

WordPress Appliance - Powered by TurnKey Linux