Artikel Blog

Menggerakan Micro Servo menggunakan RFID Module MFRC522

1. Skema Rangkaian Pin

Sebelum mengunggah kode, pastikan perpustakaan MFRC522 dan Servo sudah terinstall di Arduino IDE (via Tools $\rightarrow$ Manage Libraries).

Pin Modul RFID-RC522 ke Arduino Uno:

  • 3.3V → 3.3V Arduino (Penting: Jangan hubungkan ke 5V!)

  • RST → Pin Digital 9

  • GND → GND

  • MISO → Pin Digital 12

  • MOSI → Pin Digital 11

  • SCK → Pin Digital 13

  • SDA (SS) → Pin Digital 10

Pin Servo Motor ke Arduino Uno:

  • Sinyal (Kuning/Oren) → Pin Digital 3

  • VCC (Merah) → 5V Arduino

  • GND (Cokelat/Hitam) → GND Arduino

 

2. Kode C++ Arduino 

#include <SPI.h>

#include <MFRC522.h>

#include <Servo.h>

 

#define SS_PIN 10

#define RST_PIN 9

#define SERVO_PIN 3

 

MFRC522 rfid(SS_PIN, RST_PIN);

Servo myServo;

 

// Ganti nilai UID ini sesuai UID kartu/keyfob Anda

// Cara mengetahui UID: Jalankan Serial Monitor saat kartu di-tap

String masterUID = "A3 B4 C5 D6"; 

 

void setup() {

  Serial.begin(9600);

  SPI.begin();  // Inisialisasi bus SPI

  rfid.PCD_Init(); // Inisialisasi RFID RC522

  

  myServo.attach(SERVO_PIN);

  myServo.write(0); // Posisi awal servo (Locked / 0 derajat)

 

  Serial.println("Sistem RFID Siap. Tempelkan Kartu...");

}

 

void loop() {

  // Cek apakah ada kartu baru yang didekatkan

  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {

    return;

  }

 

  // Membaca UID kartu yang dideteksi

  String scannedUID = "";

  for (byte i = 0; i < rfid.uid.size; i++) {

    scannedUID += String(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");

    scannedUID += String(rfid.uid.uidByte[i], HEX);

  }

  scannedUID.trim();

  scannedUID.toUpperCase();

 

  Serial.print("UID Terdeteksi: ");

  Serial.println(scannedUID);

 

  // Memeriksa apakah UID kartu sesuai dengan masterUID

  if (scannedUID == masterUID) {

    Serial.println("Akses Diterima! Membuka Pintu...");

    

    myServo.write(90); // Putar servo ke 90 derajat (Unlocked)

    delay(3000); // Tahan posisi selama 3 detik

    

    myServo.write(0);  // Kembalikan servo ke 0 derajat (Locked)

    Serial.println("Pintu Terkunci Kembali.");

  } else {

    Serial.println("Akses Ditolak! Kartu Tidak Terdaftar.");

  }

 

  rfid.PICC_HaltA(); // Hentikan komunikasi dengan kartu

  rfid.PCD_StopCrypto1();

}

 

3. Cara Penggunaan

  1. Unggah kode ke Arduino Uno, lalu buka Serial Monitor (baud rate 9600).

  2. Tempelkan kartu/keyfob RFID Anda ke modul RC522.

  3. Lihat nilai UID yang muncul di Serial Monitor (contoh: 13 A2 4F C9).

  4. Salin UID tersebut ke variabel masterUID pada kode (String masterUID = "13 A2 4F C9";), lalu re-upload kodenya.