Kamis, 18 Juni 2020

Laporan Akhir Tugas Besar

 Sistem Parkir Mobil Pintar



1. Prosedur
[Kembali]

Sistem Parkir Mobil Pintar terdiri dari dua unit Raspberry Pi Pico:

    1. Raspberry Pi Pico 1 (Pintu Masuk & Keluar):

  • Mendeteksi kendaraan di gerbang masuk dan keluar menggunakan sensor ultrasonik HC-SR04 dan sensor logam LJ18A3-8-Z/BX.
  • Membaca intensitas cahaya sekitar area parkir menggunakan LDR dan menyalakan LED indikator jika kondisi gelap. 

    2. Raspberry Pi Pico 2

  • Menambah atau mengurangi variabel counter slot_terpakai sesuai perintah.
  • Menampilkan jumlah slot tersedia (slot_total - slot_terpakai) pada modul LCD 16×2 via I2C.
  • Menggerakkan motor servo untuk membuka dan menutup palang parkir.

2. Hardware dan Diagram Blok [Kembali]

- Raspberry Pi Pico, sebagai “otak” sistem: membaca data sensor (ultrasonik, logam, LDR), mengendalikan aktuator (servo, LED), dan berkomunikasi antar‑Pico serta ke LCD.



- Sensor Ultrasonik HC-SR04, untuk mendeteksi jarak kendaraan di gerbang masuk/keluar dengan memancarkan dan mengukur waktu pantulan gelombang ultrasonik; memicu logika buka‑tutup palang.



- Sensor LJ18A3-8-Z/BX, untuk memverifikasi keberadaan logam (bodi mobil) di area palang, meningkatkan akurasi deteksi kendaraan dan menghindari false‑trigger.


- Motor Servo, mekanisme pembuka‑tutup palang parkir: menerima sinyal PWM dari Pico untuk mengatur sudut 0–90° secara presisi.


-LCD 16x2 I2C, untuk menampilkan real‑time jumlah slot parkir tersisa; menerima data counter via I²C dari Pico “Display” untuk antarmuka pengguna.



- Jumper, menghubungkan pin‑pin Pico, sensor, dan modul secara fleksibel pada PCB 


- LED mengukur intensitas cahaya lingkungan; saat gelap, memberi sinyal untuk menyalakan LED indikator penerangan area parkir. 



Resistor pembatas arus digunakan untuk melindungi LED dan memastikan operasi yang stabil.

- LDR sebagai sensor intensitas cahaya ambient. Nilai resistansinya dibaca oleh ADC pada unit pertama; ketika cahaya di sekitar parkir kurang (gelap), LDR memicu logika untuk menyalakan LED indikator penerangan, dan mematikan LED kembali saat kondisi cukup terang.


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

- Rangkaian





- Prinsip kerja

    Pada skema sistem parkir mobil pintar, akan terdapat 2 buah portal yaitu portal masuk dan portal keluar, yang mana setiap portal ini akan dihubungkan dengan masing-masing sebuah motor. Pada masing-masing portal, didekatnya akan dipasang sensor ultrasonic dan sensor logam untuk mendeteksi keberadaan mobil di titik yang disediakan sebagai titik pemberhentian mobil.

    Ketika sebuah mobil berhenti di titik pemberhentian, logika sensor ultrasonic dan sensor logam ini akan bernilai 1, maka portal akan dibuka(motor bergerak). Syarat terbukanya portal yaitu kedua sensor harus berlogika 1, tidak hanya salah satu (logika AND). Lalu selanjutnya mobil akan masuk dan melewati portal masuk. Setelahnya,  kedua sensor tadi tidak lagi mendeteksi keberadaan mobil sehingga logika kedua sensor kembali berlogika 0 yang menandakan mobil telah melalui portal. Sehingga, motor kembali bergerak ke keadaan sebelumnya yang membuat portal kembali menutup. Hal ini juga berlaku di portal keluar saat mobil ingin menuju keluar. Seluruh proses mulai dari portal membuka, lalu mobil melewati portal, hingga portal menutup kembali ini dianggap sebagai satu siklus perhitungan, yang mana ini akan mempengaruhi jumlah slot parkir tersedia yang ditampilkan oleh LCD

    Seluruh skema ini akan masuk ke perhitungan jumlah slot parkir yang tersedia. Sehingga, saat terjadi satu siklus perhitungan di portal masuk, total slot parkir akan -1 dan saat terjadi satu siklus di portal keluar, total slot parkir akan +1.


4. Flowchart dan Listing Program [Kembali]

Flowchart :

Listing program :

# Pico 1 khusus untuk input sensor

import machine
import utime

# Inisialisasi perangkat keras (sensor) dan komunikasi 
uart = machine.UART(0, baudrate=9600, tx=machine.Pin(0), rx=machine.Pin(1))
trig1_pin = machine.Pin(3, machine.Pin.OUT)
echo1_pin = machine.Pin(5, machine.Pin.IN)
inductive1_pin = machine.Pin(6, machine.Pin.IN, machine.Pin.PULL_UP)
trig2_pin = machine.Pin(9, machine.Pin.OUT)
echo2_pin = machine.Pin(10, machine.Pin.IN)
inductive2_pin = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_UP)
ldr_pin = machine.ADC(26)
GELAP_THRESHOLD = 55000 

# Variabel dan Fungsi 
JARAK_MAKSIMUM_CM = 5

def ukur_jarak(trigger, echo):
    trigger.low()
    utime.sleep_us(2)
    trigger.high()
    utime.sleep_us(10)
    trigger.low()
    try:
        durasi = machine.time_pulse_us(echo, 1, 30000)
        return durasi / 58
    except OSError:
        return 999

# Program utama dimulai 
print("Pico 1: Sistem Sensor dengan Anti-Double Reading Siap.")

# Variabel untuk menyimpan status dari siklus loop sebelumnya
status_s1_sebelumnya = False
status_s2_sebelumnya = False

while True:
    # Membaca status sensor saat ini 
    jarak1 = ukur_jarak(trig1_pin, echo1_pin)
    logam1_terdeteksi = inductive1_pin.value() == 0
    status_s1_saat_ini = logam1_terdeteksi and jarak1 <= JARAK_MAKSIMUM_CM

    jarak2 = ukur_jarak(trig2_pin, echo2_pin)
    logam2_terdeteksi = inductive2_pin.value() == 0
    status_s2_saat_ini = logam2_terdeteksi and jarak2 <= JARAK_MAKSIMUM_CM

    nilai_ldr = ldr_pin.read_u16()
    suasana_gelap = nilai_ldr > GELAP_THRESHOLD

    # Logika untuk deteksi perubahan status 
    pesan_s1 = '0' # Default adalah '0'
    # Kirim '1' HANYA JIKA status berubah dari TIDAK ADA menjadi ADA
    if status_s1_saat_ini and not status_s1_sebelumnya:
        pesan_s1 = '1'
        print(">>> EVENT: Objek baru terdeteksi di Sistem 1!")

    pesan_s2 = '0' # Default adalah '0'
    # Kirim '1' HANYA JIKA status berubah dari TIDAK ADA menjadi ADA
    if status_s2_saat_ini and not status_s2_sebelumnya:
        pesan_s2 = '1'
        print(">>> EVENT: Objek baru terdeteksi di Sistem 2!")

    # Pesan LDR tetap berdasarkan kondisi saat ini (level-triggered)
    pesan_ldr = 'D' if suasana_gelap else 'L'
    
    # Gabungkan dan kirim pesan
    pesan_untuk_dikirim = pesan_s1 + pesan_s2 + pesan_ldr
    uart.write(pesan_untuk_dikirim)
    
    # Perbarui status untuk siklus berikutnya
    status_s1_sebelumnya = status_s1_saat_ini
    status_s2_sebelumnya = status_s2_saat_ini
    
    # Cetak status lokal untuk debugging
    print("Status S1: {}, Status S2: {}, LDR: {} | Mengirim: '{}'".format(
        "ADA" if status_s1_saat_ini else "...",
        "ADA" if status_s2_saat_ini else "...",
        "GELAP" if suasana_gelap else "CERAH",
        pesan_untuk_dikirim
    ))

    utime.sleep(0.5)



# Pico 2 khusus untuk output

from machine import I2C, Pin
from time import sleep
import utime
from pico_i2c_lcd import I2cLcd 

# jumlah slot parkir
JUMLAH_SLOT_MAKSIMAL = 3
jumlah_slot = JUMLAH_SLOT_MAKSIMAL

# Inisialisasi perangkat komponen
# LCD dan I2C
I2C_ADDR = 0x27 
i2c = machine.I2C(0, sda=machine.Pin(4), scl=machine.Pin(5), freq=400000)
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)

# UART
uart = machine.UART(0, baudrate=9600, tx=machine.Pin(0), rx=machine.Pin(1))

# Servos
servo1_pwm = machine.PWM(machine.Pin(6)) # Palang Masuk
servo1_pwm.freq(50)
servo2_pwm = machine.PWM(machine.Pin(28)) # Palang Keluar
servo2_pwm.freq(50)

# Inisialisasi LED
led_pin = machine.Pin(20, machine.Pin.OUT)

# Fungsi-fungsi 
def atur_sudut_servo(servo_obj, sudut):
    duty_u16 = int(1638 + (sudut / 180) * (6553.5))
    servo_obj.duty_u16(duty_u16)

def update_lcd():
    lcd.clear()
    lcd.putstr("Slot Tersedia:")
    lcd.move_to(0, 1)
    lcd.putstr(str(jumlah_slot) + " / " + str(JUMLAH_SLOT_MAKSIMAL))

# Program Utama
print("Pico 2: Sistem Parkir + Kontrol Lampu Siap.")
update_lcd()
atur_sudut_servo(servo1_pwm, 0)
atur_sudut_servo(servo2_pwm, 0)
led_pin.off() # Pastikan LED mati di awal

while True:
    if uart.any():
        # Baca 3 byte data (sesuai panjang pesan baru)
        data_diterima = uart.read(3)
        
        if data_diterima and len(data_diterima) == 3:
            print("Sinyal: {}, Slot: {}".format(data_diterima, jumlah_slot))

            # Logika Parkir (Sistem 1 & 2) 
            if data_diterima[0:1] == b'1': # Gerbang Masuk
                if jumlah_slot > 0:
                    atur_sudut_servo(servo1_pwm, 90)
                    utime.sleep(2.5)
                    atur_sudut_servo(servo1_pwm, 0)
                    jumlah_slot -= 1
                    update_lcd()
                else:
                    # Logika saat slot penuh
                    lcd.clear()
                    lcd.putstr("!! SLOT PENUH !!")
                    utime.sleep(1.5)
                    update_lcd()

            if data_diterima[1:2] == b'1': # Gerbang Keluar
                atur_sudut_servo(servo2_pwm, 90)
                utime.sleep(2.5)
                atur_sudut_servo(servo2_pwm, 0)
                if jumlah_slot < JUMLAH_SLOT_MAKSIMAL:
                    jumlah_slot += 1
                update_lcd()

            # Logika Kontrol LED
            # Cek karakter ketiga dari pesan
            if data_diterima[2:3] == b'D': # Jika 'D' (Dark)
                led_pin.on()
                print("-> Suasana GELAP, LED hidup.")
            else: # Jika 'L' (Light) atau lainnya
                led_pin.off()
                print("-> Suasana CERAH, LED mati.")

    utime.sleep_ms(100)


5. Video Demo [Kembali]




6. Kondisi [Kembali]

7. Video Simulasi [Kembali]





8. Download File[Kembali]

File HTML [disini]
Rangkaian [disini]
Listing Program [disini]
Video [disini]
Datasheet Raspberry Pi Pico [disini]

Datasheet HCSR-04 [disini]

Datasheet LJ18A3-8-Z/BX [disini]

Datasheet LCD 16x2 I2C [disini]

Datasheet Motor Servo SG90[disini]

Library LCD [disini]

Library Pi Pico [disini]

Link simulasi [disini]

Sistem Parkir Mobil Pintar

    

 



DAFTAR ISI
Percobaan


*Klik teks untuk menuju
1. Tujuan [Kembali]

  1. Memenuhi praktikum mikroprosesor mikrokontroler
  2. Mengimplementasikan PWM dan ADC
  3. Memahami dan menerapkan digital I/O
  4. Menguasai komunikasi serial UART, SPI,dan I2C
  5. Integrasi sensor, aktuator, dan antarmuka tampilan
  6. Perancangan sistem mikrokontroler secara detail


2. Alat dan Bahan [Kembali]


  1.  Raspberry Pi Pico 
  2.  LED
  3.  Sensor LDR
  4.  Sensor Ultrasonik HC SR-04
  5.  Sensor Logam LJ18A3-8-Z/BX
  6.  Motor servo
  7.  LCD 16x2 I2C
  8.  Resistor
  9.  Papan PCB
  10.  Jumper

 
3. Dasar Teori [Kembali]


    A. General Input dan General Output
    
    Input adalah semua data dan perintah yang dimasukkan ke dalam memori untuk diproses lebih lanjut oleh mikroprosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan user atau pengguna memasukkan data ke dalam mikroprosesor. Output adalah data hasil yang telah diproses. Perangkat output adalah semua komponen piranti keras yang menyampaikan informasi kepada orang-orang yang menggunakannya. 
    Pada STM32 dan Raspberry Pi Pico pin input/output terdiri dari digital dan analog yang jumlah pin-nya tergantung jenis mikrokontroller yang digunakan. Input digital digunakan untuk mendeteksi perubahan logika biner pada pin tertentu. Adanya input digital memungkinkan mikrokontroler untuk dapat menerjemahkan 0V menjadi logika LOW dan 5V menjadi logika HIGH. Membaca sinyal digital pada mikrokontroller dapat menggunakan sintaks digitalRead(pin); 
    Output digital terdiri dari dua buah logika, yaitu kondisi logika HIGH dan kondisi logika LOW. Untuk menghasilkan output kita dapat menggunakan sintaks digitalWrite(pin,nilai); yang sebelumnya pin sudah diset ke mode OUTPUT, lalu parameter kedua adalah set nilai HIGH atau LOW. Apabila pin diset dengan nilai HIGH, maka voltase pin tersebut akan diset ke 5V atau 3.3V dan bila pin diset ke LOW, maka voltase pin tersebut akan diset ke 0V. 

    B. PWM

    PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).


Duty Cycle = T on / ttotal
T on = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)
T off = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0)
T total = Waktu satu siklus atau penjumlahan antara Ton dengan Toff atau disebut juga dengan “periode satu gelombang”

    PWM pada STM32 dihasilkan menggunakan timer internal yang berfungsi sebagai penghitung waktu dengan berbagai mode operasi. Mikrokontroler ini memiliki empat timer 16-bit (TIM1–TIM4), yang dapat dikonfigurasi untuk menghasilkan sinyal dengan frekuensi dan duty cycle tertentu. Timer bekerja dengan menghitung hingga nilai tertentu berdasarkan frekuensi clock, lalu mengubah status register untuk menghasilkan gelombang persegi. 
    STM32 memiliki 15 pin yang mendukung PWM, beberapa di antaranya berasal dari timer tingkat lanjut seperti TIM1, yang memiliki fitur tambahan seperti complementary output. Selain menghasilkan sinyal PWM, timer juga bisa digunakan untuk mengukur sinyal eksternal (input capture), menghasilkan sinyal berbasis waktu (output compare), dan membuat satu pulsa berdasarkan trigger (one pulse mode). PWM sering digunakan untuk mengontrol kecepatan motor, mengatur kecerahan LED, dan berbagai aplikasi berbasis waktu lainnya. 
    Pada Raspberry Pi Pico, terdapat blok PWM yang terdiri dari 8 unit (slice), dan masing-masing slice dapat mengendalikan dua sinyal PWM atau mengukur frekuensi serta duty cycle dari sinyal input. Dengan total 16 output PWM yang dapat dikontrol, semua 30 pin GPIO bisa digunakan untuk PWM. Setiap slice memiliki fitur utama seperti penghitung 16-bit, pembagi clock presisi, dua output independen dengan duty cycle 0–100%, serta mode pengukuran frekuensi dan duty cycle. PWM pada Raspberry Pi Pico juga mendukung pengaturan fase secara presisi serta dapat diaktifkan atau dinonaktifkan secara bersamaan melalui satu register kontrol global, sehingga memungkinkan sinkronisasi beberapa output untuk aplikasi yang lebih kompleks.

    C. ADC

    ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital.
    Pada mikrokontroler STM32, terdapat dua ADC (Analog-to-Digital Converter) 12-bit yang masing-masing memiliki hingga 16 kanal eksternal. ADC ini dapat beroperasi dalam mode single-shot atau scan mode. Pada scan mode, konversi dilakukan secara otomatis pada sekelompok input analog yang dipilih. Selain itu, ADC ini memiliki fitur tambahan seperti simultaneous sample and hold, interleaved sample and hold, serta single shunt. ADC juga dapat dihubungkan dengan DMA untuk meningkatkan efisiensi transfer data. Mikrokontroler ini dilengkapi dengan fitur analog watchdog yang memungkinkan pemantauan tegangan hasil konversi dengan akurasi tinggi, serta dapat menghasilkan interupsi jika tegangan berada di luar ambang batas yang telah diprogram. Selain itu, ADC dapat disinkronkan dengan timer internal (TIMx dan TIM1) untuk memulai konversi, pemicu injeksi, serta pemicu DMA, sehingga memungkinkan aplikasi untuk melakukan konversi ADC secara terkoordinasi dengan timer. 
    Raspberry Pi Pico memiliki empat ADC (Analog-to-Digital Converter) 12-bit dengan metode SAR, tetapi hanya tiga kanal yang dapat digunakan secara eksternal, yaitu ADC0, ADC1, dan ADC2, yang terhubung ke pin GP26, GP27, dan GP28. Kanal keempat (ADC4) digunakan secara internal untuk membaca suhu dari sensor suhu bawaan. Konversi ADC dapat dilakukan dalam tiga mode: polling, interrupt, dan FIFO dengan DMA. Kecepatan konversi ADC adalah 2μs per sampel atau 500 ribu sampel per detik (500kS/s). Mikrocontroller RP2040 berjalan pada frekuensi 48MHz yang berasal dari USB PLL, dan setiap konversi ADC membutuhkan 96 siklus CPU, sehingga waktu samplingnya adalah 2μs per sampel. 

    D. UART

    UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.

Cara kerja komunikasi UART


    Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudia di transfer secara parallel ke data bus penerima. 

    E. I2C

    Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. 

Cara kerja komunikasi I2C



    Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop. Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL. Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL. R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave) ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver.

    F. Raspberry Pi Pico

    Raspberry Pi Pico adalah papan rangkaian elektronik yang di dalamnya terdapat komponen utama chip mikrokontroler RP2040, yang dirancang dan diproduksi oleh Raspberry Pi Foundatio. Tidak seperti komputer mini raspberry Pi lainnya yang menjalankan sistem operasi seperti Linux, Pico dirancang untuk tugas-tugas yang lebih sederhana dan langsung (embedded system), seperti membaca sensor, mengontrol perangkat, atau melakukan pengolahan data pada tingkat hardware. Adapun spesifikasi dari Raspberry Pi Pico adalah sebagai berikut: 





    G. Resistor



    Resistor merupakan komponen pasif yang memiliki nilai resistansi tertentu dan berfungsi untuk menghambat jumlah arus listrik yang mengalir dalam suatu rangkaian. Resistor dapat diklasifikasikan menjadi beberapa jenis, diantaranya resistor nilai tetap (fixed resistor), resistor variabel (variabel resistor), thermistor, dan LDR.



Cara membaca nilai resistor :

Cara menghitung nilai resistansi resistor dengan gelang warna :

1. Masukan angka langsung dari kode warna gelang pertama.

2. Masukan angka langsung dari kode warna gelang kedua.

3. Masukan angka langsung dari kode warna gelang ketiga.

 4. Masukkan jumlah nol dari kode warna gelang ke-4 atau pangkatkan angka tersebut dengan 10 (10^n).

5. Gelang terakhir merupakan nilai toleransi dari resistor.




    H. LCD

    Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).

Gambar penampang komponen penyusun LCD

Keterangan:

1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.

2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).

3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).

4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).

5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.

6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.

 

Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.



Kaki-kaki yang terdapat di LCD

    I. LED

    LED adalah suatu semikonduktor yang memancarkan cahaya, LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.


    J. Motor Servo



    Motor Servo merupakan motor listrik dengan menggunakan sistem closed loop. Sistem tersebut digunakan untuk mengendalikan akselerasi dan kecepatan pada sebuah motor listrik dengan keakuratan yang tinggi. Selain itu, motor servo biasa digunakan untuk mengubah energi listrik menjadi mekanik melalui interaksi dari kedua medan magnet permanent.

Motor berfungsi sebagai penggerak roda gigi agar dapat memutar potensiometer dan poros output-nya secara bersamaan.

Jenis Motor Servo Berdasarkan Arusnya :

  • Motor Servo AC

Motor Servo AC merupakan jenis yang dapat menangani tegangan arus listrik yang tinggi atau beban berat. Motor servo AC sangat cocok diaplikasikan pada mesin-mesin industri yang bertujuan untuk dapat mengendalikannya.

  • Motor Servo DC

Motor servo DC merupakan jenis yang hanya dapat menangani tegangan arus dan beban yang lebih kecil. Sehingga motor servo DC cocok diaplikasikan pada mesin-mesin kecil seperti mobil dan pesawat remote control.

Pada umumnya, motor servo terdiri dari tiga komponen utama yaitu :

  • Motor
  • Sistem Kontrol
  • Potensiometer atau encoder

    K. Sensor Ultrasonik

    Sensor ultrasonik HC-SR04 adalah seri dari sensor jarak dengan gelombang ultrasonik, dimana didalam sensor terdapat dua bagian yaitu transmitter yang berfungsi sebagai pemancar gelombang dan receiver yang berfungsi sebagai penerima gelombang. Sensor ultrasonik HC-SR04 ini bisa digunakan untuk mengukur jarak benda dari 2cm – 400 cm dengan akurasi 3mm. Sensor ultrasonik ini memiliki 4 pin yaitu:

  • Pin VCC sebagai pin masukan tegangan.
  • Pin GND sebagai grounding.
  • Pin Trigger untuk trigger keluarnya sinyal.
  • Pin Echo untuk menangkap sinyal pantul dari benda.

Dalam hal ini s merupakan jarak benda, v merupakan kecepatan gelombang suara yaitu 344m/detik dan t merupakan waktu tempuh dari saat sinyal ultrasonik dipancarkan hingga kembali ke penerima.

Spesifikasi dari sensor ultrasonik HC-SR04 adalah sebagai berikut:

  • Dimensi : 45 mm (P) x 20 mm (L) x 15 mm (T)
  • Tegangan : 5 V DC
  • Arus pada mode siaga :  <2 mA
  • Arus pada saat deteksi : 15 mA
  • Frekuensi suara : 40 kHz
  • Jangkauan Minimum : 2 cm
  • Jangkauan Maksimum : 400 cm
  • Input Trigger : 10 µS minimum, pulsa level TTL
  • Pulsa Echo : Sinyal level TTL positif, lebar berbanding proporsional dengan jarak yang dideteksi

Cara menggunakan sensor ini yaitu: ketika diberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Selanjutnya, sinyal akan diterima pada pin Echo. Untuk mengukur jarak benda yang memantulkan sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal digunakan untuk menentukan jarak benda tersebut (menggunakan rumus diatas).


    L. Sensor Logam LJ18A3-8-Z/BX



    LJ18A3‑8‑Z/BX adalah sensor proximity induktif berbentuk silinder (M18) dengan jarak deteksi hingga 8 mm. Ia menggunakan output NPN open-collector, bekerja pada tegangan 6–36 V DC, dan mampu memberikan arus keluaran hingga 200–300 mA. Sensor ini banyak digunakan untuk deteksi logam tanpa kontak langsung.

Sensor logam LJ18A3-8/Z/BX memiliki spesifikasi detail sebagai berikut :



    M. Sensor LDR





    LDR adalah resistor berbasis semikonduktor (biasanya CdS, CdSe) yang resistansinya turun saat intensitas cahaya meningkat — sifat ini disebut fotokonduktivitas, yang mengubah resistansi sebagai respons terhadap cahaya. Semakin intens cahaya yang jatuh pada permukaannya, semakin banyak pembawa muatan (elektron‑lubang) terbentuk, dan resistansinya menurun drastis. Ketika berada di kegelapan total, resistansi sebuah LDR bisa sangat tinggi, mencapai megaohm; namun saat terkena cahaya terang, nilai resistansinya bisa turun hingga beberapa ratus ohm.

Spesifikasi dari sensor LDR ini adalah :

1. Supply : 3.3 V – 5 V 

2. Output Type: Digital Output (0 and 1) 

3. Inverse output

4. Include IC LM393 voltage comparator

5. Sensitivitasnya dapat diatur 

6. Dimensi PCB size: 3.2 cm x 1.4 cm


Adapun komponen utama penyusun modul LDR :


- LDR (Light Dependent Resistor)

Komponen inti berupa resistor semikonduktor (CdS atau CdSe) sensitif terhadap intensitas cahaya. Saat cahaya meningkat, resistansi menurun

- Potensiometer variabel (trim-potentiometer)
Digunakan untuk mengatur sensitivitas deteksi cahaya dengan mengubah titik ambang (threshold output).

- Komparator/op‑amp (biasanya LM393)
Menerjemahkan perubahan resistansi menjadi sinyal digital: output “High” atau “Low” berdasarkan ambang yang ditetapkan trim‑pot. LM393 umum digunakan untuk modul digital/analog dual output .

- LED indikator

  • Satu LED menunjukkan bahwa modul sudah dialiri daya.
  • LED kedua menyala ketika output aktif (aum mendeteksi atau tidak mendeteksi)

- Konduktor (VCC–GND–AO–DO)
Modul biasanya memiliki empat pin: VCC (catu daya), GND (ground), AO (analog, tegangan proporsional), dan DO (digital output)

- PCB dan konektivitas
Semua komponen dilekatkan pada PCB kecil (biasanya ~32 × 14 mm) dan dilengkapi konektor header untuk mudah disambungkan, ideal untuk prototyping (breadboard atau Arduino) .