Laporan Akhir 1 : Modul 2

[menuju akhir]





PERCOBAAN 6 : Motor Servo, LED RGB, & Potensiometer

1. Prosedur[Kembali]
1. Sediakan alat dan bahan percobaan

2. Rangkailah rangkaian di breadboard sesuai modul

3. Buka aplikasi thonny dan masukkan listing program ke dalam aplikasi tersebut

4. Hubungkan rangkaian dengan software dengan kabel USB

5. Jalankan program

2. Hardware dan Diagram Blok[Kembali]
a. Hardware

1. Rasberry Pi Pico

                                                                                    (a)                                                (b)
Gambar Mikrokontroler Rasberry Pi Pico (a) tampilan hardware, (b) tampilan simulasi

Raspberry Pi Pico adalah papan mikrokontroler berbasis RP2040, sebuah chip yang dikembangkan oleh Raspberry Pi Foundation. Mikrokontroler ini menggunakan prosesor ARM Cortex-M0+ dual-core, memiliki 264KB RAM, dan mendukung berbagai antarmuka seperti GPIO, I2C, SPI, dan UART. Raspberry Pi Pico cocok untuk proyek embedded systemsIoT, dan otomasi

2. Motor Servo




(a)                                                                    (b)
Gambar Motor Servo (a) tampilan hardware, (b) tampilan simulasi

Motor servo adalah motor listrik yang dilengkapi dengan sistem kontrol umpan balik (feedback) untuk mengendalikan posisi, kecepatan, dan akselerasi dengan presisi tinggi. 


3. Potensiometer



                (a)                                                           (b)
Gambar Potensiometer (a) tampilan hardware, (b) tampilan simulasi

Potensiometer adalah resistor tiga terminal dengan sambungan geser yang membentuk pembagi tegangan dapat disetel.

4. Resistor


                (a)                                                                       (b)
Gambar resistor (a) tampilan hardware, (b) tampilan simulasi


Resistor adalah komponen elektronik pasif yang berfungsi untuk membatasi arus listrik dalam suatu rangkaian. Resistor bekerja berdasarkan hukum Ohm, yang menyatakan bahwa tegangan (V) = arus (I) × resistansi (R). Resistor memiliki satuan Ohm (Ω) dan digunakan dalam berbagai aplikasi seperti pembagian tegangan, kontrol arus, dan proteksi rangkaian elektronik.

5. LED-RGB



LED RGB adalah perangkat elektronik yang dapat menghasilkan warna merah,hijau dan biru.



b. Diagram Blok




3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]


Gambar Rangkaian Percobaan 6 Modul 2

Prinsip Kerja :

Potensiometer yang terhubung ke pin GP28 pada Raspberry Pi Pico berfungsi sebagai pengatur posisi sudut. Ketika potensiometer diputar, nilainya akan dibaca sebagai sinyal analog oleh pin ADC (Analog to Digital Converter), yang kemudian dikonversi menjadi nilai digital dengan rentang 0 hingga 65535.

Nilai digital dari potensiometer tersebut selanjutnya diproses dan dipetakan ke sudut antara 0 hingga 180 derajat. Sudut ini menunjukkan posisi yang diinginkan untuk poros servo motor. Kemudian, sudut ini dikonversi kembali menjadi sinyal PWM (Pulse Width Modulation) dengan nilai duty cycle antara 1500 hingga 7500, yang sesuai dengan standar kontrol sebagian besar servo. PWM ini dikirimkan melalui pin GP16 untuk menggerakkan motor servo agar berputar ke posisi tertentu.

Selain mengatur posisi servo, sudut hasil pembacaan juga digunakan untuk menentukan warna yang akan ditampilkan oleh LED RGB. LED RGB terdiri dari tiga warna utama: merah, hijau, dan biru, yang masing-masing terhubung ke pin GP1, GP2, dan GP3. Program akan memeriksa sudut servo dan menyalakan salah satu warna LED sesuai rentang sudut tersebut. Jika sudut antara 0 hingga 60 derajat, LED merah akan berkedip; jika sudut antara 61 hingga 120 derajat, LED hijau yang berkedip; dan jika sudut di atas 120 derajat, LED biru yang akan berkedip. Efek berkedip ini diatur menggunakan fungsi waktu internal (delay) setiap 1 detik.



4. Flowchart dan Listing Program[Kembali]
a. Flowchart


b. Listing Program

from machine import Pin, PWM, ADC

import utime

 

# Definisi pin

servo = PWM(Pin(16))  # Servo pada GP16

pot = ADC(Pin(28))    # Potensiometer pada GP28

led_red = Pin(1, Pin.OUT)   # LED Merah pada GP1

led_green = Pin(2, Pin.OUT) # LED Hijau pada GP2

led_blue = Pin(3, Pin.OUT)  # LED Biru pada GP3

 

# Konfigurasi servo (frekuensi 50Hz)

servo.freq(50)

 

# Fungsi map seperti di Arduino

def map_value(value, in_min, in_max, out_min, out_max):

    return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)

 

# Variabel untuk kontrol kedipan LED

last_blink = utime.ticks_ms()

led_state = True  # Mulai dalam keadaan menyala

 

while True:

# Waktu sekarang

now = utime.ticks_ms()

# Membaca nilai potensiometer (0 - 65535)

pot_value = pot.read_u16()

# Konversi ke sudut servo (0° - 180°)

angle = map_value(pot_value, 0, 65535, 0, 180)

# Konversi sudut ke duty cycle (1500 - 7500) → sesuai servo PWM

duty = map_value(angle, 0, 180, 1500, 7500)

servo.duty_u16(duty)

# Print untuk debugging

print(f"Pot Value: {pot_value}, Angle: {angle}, Duty: {duty}")

# Jika sudah lewat 1000 ms (1 detik), ubah status LED RGB

if utime.ticks_diff(now, last_blink) >= 1000:

led_state = not led_state

last_blink = now  # reset waktu blink

# Nyalakan salah satu warna LED berdasarkan sudut

if 0 <= angle <= 60:

led_red.value(led_state)

led_green.value(0)

led_blue.value(0)

elif 60 < angle <= 120:

led_red.value(0)

led_green.value(led_state)

led_blue.value(0)

else:

led_red.value(0)

led_green.value(0)

led_blue.value(led_state)

utime.sleep_ms(50)  # Delay pendek untuk kestabilan pembacaan


5. Video Demo[Kembali]






6. Analisa[Kembali]

ANALISA MODUL 2: PWM, ADC, INTERRUPT, & MILLIS 

1. Analisa bagaimana perbedaan implementasi PWM antara STM32 dan Raspberry Pi Pico 
serta dampaknya terhadap kontrol motor dan LED.

          Jawab :

PWM (Pulse Width Modulation) pada STM32 dikendalikan oleh hardware timer (TIMx) yang sangat fleksibel. Konfigurasi PWM pada STM32 melalui HAL Library memungkinkan pengguna untuk mengatur frekuensi, duty cycle, mode PWM (edge/center aligned), dan sinkronisasi antar timer. Fitur ini sangat berguna untuk kendali motor presisi tinggi (misalnya BLDC atau servo industri) dan sistem kendali tertanam real-time yang membutuhkan resolusi dan kestabilan sinyal tinggi.

Sementara itu, Raspberry Pi Pico menggunakan PWM slice sebanyak 8 buah, dengan masing-masing slice mampu menghasilkan 2 sinyal PWM. Implementasinya di MicroPython sangat sederhana, cukup dengan memanggil beberapa baris kode untuk mengatur frekuensi dan duty cycle. Meskipun Pico menawarkan resolusi 16-bit (lebih tinggi dari STM32 secara default), kontrol terhadap sinkronisasi antar channel dan presisi waktu tidak sekompleks STM32. Oleh karena itu, PWM di Pico lebih cocok untuk aplikasi non-kritis seperti kendali LED, buzzer, atau motor servo skala kecil.

Jadi, STM32 memberikan kontrol yang lebih akurat dan stabil untuk aplikasi kompleks, sedangkan Raspberry Pi Pico lebih unggul dalam kemudahan dan kecepatan pengembangan prototipe.


2. Analisa bagaimana cara pembacaan nilai sensor analog menggunakan ADC pada STM32  
dan Raspberry Pi Pico

Jawab :

STM32 memiliki ADC internal multichannel dengan dukungan resolusi hingga 12-bit, sampling rate tinggi, dan metode pembacaan fleksibel: polling, interrupt, atau DMA. Hal ini memungkinkan STM32 untuk membaca data analog dengan cepat, efisien, dan cocok untuk aplikasi real-time seperti sensor suhu, tekanan, atau sensor industri lainnya.

Pada sisi lain, Raspberry Pi Pico menggunakan ADC 12-bit juga, namun hanya tersedia 3 channel aktif (plus satu untuk pembacaan tegangan internal). Dalam MicroPython, pembacaan sangat mudah melalui fungsi ADC.read_u16(), meskipun hasil pembacaan perlu disesuaikan karena formatnya berupa nilai 16-bit dengan padding. Pico tidak menyediakan opsi DMA atau pengambilan data paralel secara default.

Jadi, STM32 lebih fleksibel dan andal untuk aplikasi dengan banyak sensor atau kebutuhan akuisisi data cepat, sedangkan Pico cocok untuk sistem sederhana dengan satu atau dua sensor analog.


3. Analisa bagaimana penggunaan interrupt eksternal dalam mendeteksi input dari sensor atau 
tombo pada STM32 dan Raspberry Pi Pico.

Jawab :

Pada STM32, interrupt eksternal ditangani oleh sistem EXTI (External Interrupt/Event Controller) yang dapat mengatur trigger (rising, falling, atau both edges), dan terintegrasi dengan NVIC untuk manajemen prioritas. Penanganannya dilakukan melalui callback HAL, yang membuat sistem lebih modular dan aman untuk aplikasi multitasking dan kendali real-time.

Di Raspberry Pi Pico, interrupt pada pin GPIO diakses melalui fungsi irq() di MicroPython. Meskipun cukup efektif untuk aplikasi dasar seperti deteksi tombol atau sensor digital, Pico tidak menyediakan manajemen prioritas atau interrupt nesting secara langsung di MicroPython.

Jadi, STM32 jauh lebih unggul untuk aplikasi yang membutuhkan interupsi simultan atau kompleks, sedangkan Pico cukup untuk aplikasi sederhana dan reaktif dasar.


4. Analisa bagaimana cara kerja fungsi HAL_GetTick() pada STM32 dan utime.ticks_ms() 
pada Raspberry Pi Pico dalam menghitung waktu sejak sistem dinyalakan

Jawab : 

Fungsi HAL_GetTick() pada STM32 menggunakan SysTick timer dengan presisi 1 ms, yang dihitung sejak sistem dinyalakan. Timer ini bebas blocking dan sangat cocok digunakan untuk pengukuran waktu, delay non-blocking, serta penjadwalan tugas dalam sistem real-time.

Di sisi lain, utime.ticks_ms() pada Raspberry Pi Pico juga menghasilkan nilai waktu sejak booting dengan satuan milidetik. Namun, karena dijalankan dalam konteks interpreter MicroPython, presisinya bisa terpengaruh oleh beban eksekusi skrip lainnya.

Jadi, STM32 memberikan akurasi waktu lebih tinggi dan kestabilan untuk sistem real-time. Pico mencukupi untuk aplikasi sederhana, tetapi kurang ideal untuk kebutuhan timing kritis.


5. Analisa bagaimana perbedaan konfigurasi dan kontrol pin PWM serta pemanfaatan timer 
internal pada STM32 dan Raspberry Pi Pico dalam menghasilkan sinyal gelombang persegi.

Jawab : 

PWM di STM32 sangat bergantung pada timer internal yang bisa disinkronkan, dikonfigurasi dalam berbagai mode (PWM mode 1/2, one-pulse mode, output compare, dll), dan dipakai untuk aplikasi seperti motor control, inverter, atau kendali dimmer. Setiap timer dapat memiliki beberapa channel output PWM, sehingga mendukung kendali multi-motor secara simultan.

Sedangkan Raspberry Pi Pico memiliki PWM slice berbasis hardware sederhana. Setiap slice dapat diatur independen namun tidak bisa disinkronisasi atau dipicu oleh sumber eksternal seperti timer pada STM32. Meski mendukung frekuensi tinggi dan duty cycle variatif, Pico tidak dirancang untuk kendali motor presisi tinggi atau sistem PWM kompleks.

Jadi, STM32 unggul dalam kontrol multi-channel presisi tinggi, sedangkan Pico cocok untuk PWM dasar dengan konfigurasi cepat dan mudah.


Kesimpulan 

STM32 adalah platform mikrokontroler yang dirancang untuk aplikasi teknis tingkat lanjut, dengan kekuatan di presisi, fleksibilitas konfigurasi, dan dukungan real-time. Cocok digunakan dalam robotika, automasi industri, dan sistem tertanam canggih. Raspberry Pi Pico, sebaliknya, lebih diarahkan untuk kemudahan penggunaan, prototyping cepat, dan pengembangan edukatif. Meski fitur-fiturnya lebih sederhana, Pico tetap efektif untuk membangun konsep awal atau sistem ringan. Praktikum ini memberikan pemahaman praktis bahwa pemilihan platform harus mempertimbangkan kompleksitas aplikasi, kebutuhan real-time, dan kemudahan integrasi.

7. Download File[Kembali]
Download HTML klik disini 
Download file Analisa klik disini
Download video Demo klik disini 
Download Datasheet Servo klik disini
Download Datasheet Potensiometer klik disini
Download Datasheet Resistor klik disini
Download Datasheet IC Rasberry Pi Pico klik disini 
Download Datasheet  RGB-LED klik disini 
 

 

[menuju awal]

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI  MATA KULIAH SISTEM DIGITAL 2024 Oleh : Fransiscus Asisi Andhika Darmawan 2210951014 Dosen Pengampu :  Dr. Darwison, M.T ...