Kamis, 18 Juni 2020

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) .

0 comments:

Posting Komentar