Capaian Pembelajaran

  • Memahami prinsip kerja relay elektromekanik dan solid state
  • Mengimplementasikan driver circuit untuk relay
  • Membuat program kontrol perangkat AC/DC daya tinggi
  • Merancang sistem kontrol beban dengan multiple relay
  • Menerapkan safety protocol dalam kontrol beban tinggi

1. Relay: Switch Elektromekanik

Relay adalah switch elektromekanik yang menggunakan elektromagnet untuk mengoperasikan kontak mekanik. Relay memungkinkan sirkuit daya rendah (mikrokontroler) untuk mengontrol sirkuit daya tinggi (perangkat AC/DC).

Parameter Relay Elektromekanik Solid State Relay (SSR)
Prinsip Kerja Elektromagnet + Kontak Mekanik Semiconductor (Optocoupler + TRIAC/SCR)
Kecepatan Switching 10-100 ms 1-10 ms
Umur Operasi 10^5 - 10^6 cycles 10^8 - 10^9 cycles
Noise Ada (kontak mekanik) Minimal
Biaya Rendah Tinggi

Konfigurasi Kontak Relay

  • SPST (Single Pole Single Throw): 1 kontak, 2 status (ON/OFF)
  • SPDT (Single Pole Double Throw): 1 kontak, 3 terminal (NO, NC, Common)
  • DPST (Double Pole Single Throw): 2 kontak independen
  • DPDT (Double Pole Double Throw): 2 kontak dengan 3 terminal masing-masing

2. Simulasi Kontrol Relay

Simulasi Kontrol Relay dan Beban

Diagram Relay SPDT

Relay: OFF
Sirkuit Beban Lampu
Lampu: MATI

Kontrol Relay

Sinyal Kontrol: LOW

Mode Operasi

Mode: MANUAL

Driver Circuit untuk Relay

Mikrokontroler membutuhkan driver circuit untuk mengaktifkan relay karena:

Alasan Perlunya Driver Relay

  • Arus coil relay (30-100mA) > Maksimal arus output mikrokontroler (20-40mA)
  • Back EMF dari coil relay dapat merusak mikrokontroler
  • Isolasi galvanic antara low voltage dan high voltage circuit
relay_driver.c - Kontrol Relay dengan Transistor

#include 
#include 

#define RELAY_PIN PB0
#define RELAY_DELAY 1000

void relayInit() {
    // Set relay pin as output
    DDRB |= (1 << RELAY_PIN);
    // Start with relay OFF
    PORTB &= ~(1 << RELAY_PIN);
}

void relayOn() {
    PORTB |= (1 << RELAY_PIN);
}

void relayOff() {
    PORTB &= ~(1 << RELAY_PIN);
}

void relayToggle() {
    PORTB ^= (1 << RELAY_PIN);
}

int main(void) {
    relayInit();
    
    while(1) {
        // Turn relay ON
        relayOn();
        _delay_ms(RELAY_DELAY);
        
        // Turn relay OFF
        relayOff();
        _delay_ms(RELAY_DELAY);
        
        // Toggle relay
        relayToggle();
        _delay_ms(RELAY_DELAY);
        relayToggle();
        _delay_ms(RELAY_DELAY);
    }
    
    return 0;
}
                        

3. Jenis-jenis Relay dan Aplikasinya

Relay Elektromekanik

Relay tradisional dengan kontak mekanik, cocok untuk aplikasi umum dengan switching tidak terlalu cepat.

Spesifikasi Typical:
  • Voltage: 5V, 12V, 24V DC
  • Current: 10A-30A
  • Kontak: SPST, SPDT, DPDT

Solid State Relay (SSR)

Relay tanpa bagian bergerak, menggunakan semikonduktor. Cocok untuk aplikasi high-speed switching.

Spesifikasi Typical:
  • Isolation: Optocoupler
  • Switching: 1-10ms
  • Life: 10^8+ cycles

Reed Relay

Relay dengan kontak sealed dalam tabung glass, cocok untuk aplikasi low-power dan high reliability.

Spesifikasi Typical:
  • Size: Compact
  • Current: < 1A
  • Speed: 0.5-2ms

4. Aplikasi Kontrol Beban Daya Tinggi

Home Automation System

Implementasi relay dalam sistem smart home untuk kontrol perangkat rumah tangga:

home_automation.c - Sistem Kontrol Rumah Cerdas

#include 
#include 

// Relay pins definition
#define LIGHT_PIN PB0
#define FAN_PIN PB1
#define PUMP_PIN PB2
#define HEATER_PIN PB3

// Sensor pins
#define LDR_PIN PC0
#define TEMP_PIN PC1
#define MOTION_PIN PC2

void initSystem() {
    // Set relay pins as output
    DDRB |= (1 << LIGHT_PIN) | (1 << FAN_PIN) | (1 << PUMP_PIN) | (1 << HEATER_PIN);
    
    // Set sensor pins as input
    DDRC &= ~((1 << LDR_PIN) | (1 << TEMP_PIN) | (1 << MOTION_PIN));
}

void autoLightControl() {
    // Read LDR sensor
    if (PINC & (1 << LDR_PIN)) {
        // Dark condition - turn on light
        PORTB |= (1 << LIGHT_PIN);
    } else {
        // Bright condition - turn off light
        PORTB &= ~(1 << LIGHT_PIN);
    }
}

void autoTemperatureControl() {
    // Read temperature sensor (simplified)
    if (PINC & (1 << TEMP_PIN)) {
        // Hot - turn on fan
        PORTB |= (1 << FAN_PIN);
        PORTB &= ~(1 << HEATER_PIN);
    } else {
        // Cold - turn on heater
        PORTB &= ~(1 << FAN_PIN);
        PORTB |= (1 << HEATER_PIN);
    }
}

void securityMode() {
    // If motion detected, turn on all lights
    if (PINC & (1 << MOTION_PIN)) {
        PORTB |= (1 << LIGHT_PIN);
        _delay_ms(30000); // Stay on for 30 seconds
        PORTB &= ~(1 << LIGHT_PIN);
    }
}

int main(void) {
    initSystem();
    
    while(1) {
        autoLightControl();
        autoTemperatureControl();
        securityMode();
        
        _delay_ms(1000); // Check every second
    }
    
    return 0;
}
                        

Contoh Aplikasi Real-World

  • Smart Lighting: Kontrol lampu berdasarkan sensor cahaya
  • Temperature Control: Kontrol pemanas/AC berdasarkan suhu
  • Irrigation System: Kontrol pompa air berdasarkan kelembaban tanah
  • Security System: Aktifkan alarm berdasarkan sensor gerak

5. Keamanan dan Proteksi

Isolasi Galvanic

Gunakan optocoupler atau relay untuk mengisolasi sirkuit low-voltage dari high-voltage

Fuse Protection

Selalu gunakan fuse yang sesuai dengan rating beban untuk mencegah kebakaran

Grounding

Pastikan sistem ter-ground dengan benar untuk keamanan pengguna

Overload Protection

Jangan melebihi rating current dan voltage relay yang ditentukan

Peringatan Keselamatan

  • Selalu matikan power saat melakukan modifikasi rangkaian
  • Gunakan multimeter untuk verifikasi sebelum menghubungkan power
  • Hindari sentuhan langsung dengan terminal high-voltage
  • Gunakan enclosure yang sesuai untuk proteksi fisik

Latihan Praktikum

Tugas implementasi sistem kontrol relay dan beban

Tugas 1: Basic Relay Control

Buat program untuk mengontrol relay dengan fitur:

  • Kontrol ON/OFF relay dengan push button
  • LED indicator untuk status relay
  • Buzzer alert saat relay aktif
  • Debouncing untuk input button

Tugas 2: Timer-based Control

Implementasikan kontrol relay dengan timer:

  • Relay ON selama 5 detik, OFF 10 detik (cycle)
  • Multiple timing profiles (5s, 30s, 1m, 5m)
  • LCD display untuk countdown timer
  • Emergency stop function

Tugas 3: Smart Home System

Rancang sistem integrated home automation:

  • 4-channel relay control (lampu, kipas, pompa, pemanas)
  • Sensor integration (LDR, DHT11, PIR, soil moisture)
  • Automatic mode berdasarkan kondisi sensor
  • Manual override dengan push buttons