LAPORAN AKHIR 1 MODUL 2

[menuju akhir]





   PERCOBAAN 1 : LED, BUZZER DAN LDR
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. Buzzer



Buzzer adalah komponen elektronik yang berfungsi mengubah sinyal listrik menjadi suara atau bunyiKomponen ini sering digunakan sebagai indikator, peringatan, atau pemberitahuan dalam berbagai perangkat elektronik. Buzzer memiliki dua terminal, positif (+) dan negatif (-), dan dapat diaktifkan dengan mengalirkan arus listrik melalui kedua terminal tersebut.

3. LDR



LDR atau Light Dependent Resistor adalah komponen elektronika yang nilai resistansinya berubah sesuai dengan intensitas cahaya yang diterimaDengan kata lain, semakin terang cahaya yang mengenai LDR, semakin kecil nilainya resistansi, dan sebaliknya, semakin gelap cahaya yang mengenai LDR, semakin besar nilainya resistansi.


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.




3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]




Gambar Rangkaian Percobaan 1 Modul 2

Prinsip Kerja :

Rangkaian yang ditampilkan pada gambar merupakan sistem deteksi cahaya berbasis mikrokontroler Raspberry Pi Pico. Sistem ini terdiri dari tiga komponen utama: sensor LDR (Light Dependent Resistor) yang berfungsi sebagai pendeteksi intensitas cahaya, sebuah LED yang dipasang dengan resistor sebagai indikator visual, dan sebuah buzzer aktif sebagai alarm suara.

Sensor LDR digunakan bersama sebuah resistor tetap dalam konfigurasi pembagi tegangan. Salah satu ujung LDR dihubungkan ke pin 3.3V pada Raspberry Pi Pico, sedangkan ujung lainnya dihubungkan ke salah satu pin ADC (Analog to Digital Converter), seperti GP26. Resistor tetap disusun secara seri dengan LDR, dan ujung lainnya dihubungkan ke GND. Titik tengah antara LDR dan resistor itulah yang memberikan sinyal analog ke Raspberry Pi Pico, yang nilainya berubah tergantung intensitas cahaya.

Pada sisi keluaran (output), terdapat LED yang dihubungkan ke salah satu pin GPIO pada Raspberry Pi Pico melalui sebuah resistor untuk membatasi arus. Ujung LED lainnya dihubungkan ke GND. Selain itu, buzzer aktif juga dihubungkan ke GPIO dan GND. Ketika Raspberry Pi Pico mendeteksi bahwa intensitas cahaya berada di bawah ambang batas tertentu (misalnya saat gelap), mikrokontroler akan mengaktifkan pin output untuk menyalakan LED dan membunyikan buzzer.

Dengan demikian, saat kondisi gelap terdeteksi oleh LDR, Raspberry Pi Pico akan memberikan dua sinyal peringatan: LED menyala sebagai indikator visual dan buzzer berbunyi sebagai alarm. Rangkaian ini sangat berguna untuk sistem pemantauan cahaya, seperti lampu otomatis malam hari atau alarm saat pencahayaan ruangan tidak mencukupi.


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




b. Listing Program

from machine import Pin, PWM, ADC 

import utime 

 

# Pin Setup 

ldr = ADC(28)         # Pin AO dari LDR ke GP28 

ldr_digital = Pin(0, Pin.IN)  # Pin DO dari LDR ke GP0 

led = Pin(6, Pin.OUT)  # LED di GP6 

buzzer = PWM(Pin(15))  # Buzzer di GP15 dengan PWM 

 

# Konfigurasi PWM Buzzer 

buzzer.freq(1000)      # Frekuensi awal buzzer (1kHz) 

buzzer.duty_u16(0)     # Mulai dengan buzzer mati 

 

# Fungsi untuk mengonversi nilai ADC ke lux  

def adc_to_lux(adc_value): 

    return (adc_value / 65535) * 900 + 10  # Rentang 10 - 1000 lux 

 

# Variabel untuk menyimpan kondisi normal awal 

lux_normal = 0 

 

# Variabel untuk kedip LED 

last_blink_time = utime.ticks_ms() 

led_state = False 

led_should_blink = False  # hanya True saat kondisi mendeteksi perubahan cahaya 

signifikan 

 

# Loop utama 

while True: 

    analog_value = ldr.read_u16() 

    lux = adc_to_lux(analog_value) 

 

    if lux_normal == 0:  

 lux_normal = lux 

print(f"Lux Normal: {lux_normal}") 

print(f"LDR Value: {analog_value} | Lux: {lux}") 

if lux > lux_normal + 50: 

led_should_blink = True  # nyalakan mode kedip 

buzzer.duty_u16(30000)   # nyalakan buzzer 

for i in range(500, 1000, 100):  # variasi frekuensi buzzer 

buzzer.freq(i) 

utime.sleep(0.1) 

else: 

led_should_blink = False 

led.off() 

buzzer.duty_u16(0) 

# Kedip LED jika perlu 

if led_should_blink: 

current_time = utime.ticks_ms() 

if utime.ticks_diff(current_time, last_blink_time) >= 1000: 

led_state = not led_state 

led.value(led_state) 

last_blink_time = current_time 

utime.sleep(0.1)  # sedikit delay supaya tidak terlalu cepat baca LDR


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

          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  utime.ticks_ms() pada Raspberry Pi Pico dalam menghitung waktu sejak sistem dinyalakan

Jawab : 

fungsi 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. saat raspberry pi Pico dinyalakan, sebuah timer tersebut dan mengkonversinya menjadi satuan milidetik. misalnya jika fungsi dipanggil lima detik setelah boot, maka nilainya lkira kira 5000. namun karena keterbatasan ukuran integer (terutama di sistem 32 bit) nilai dari ticks.ms() akan melakukan overflow (kembali ke nol) setelah mencapai batas maksimal, biasanya setiap 249,7 hari (2 milidetik). oleh karena itu, micro pyhton juga menyediakan fungsi seperti untuk menghitung selisih waktu dengan aman meskipun terjadi overflow.

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 file Analisa klik disini
Download video Demo 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

MEMAHAMI ETIKA DI ERA DIGITAL

Menyelami Dunia Digital dengan Bertanggung Jawab: Memahami Etika Berkomunikasi di Era Digital (Lebih Detail) Memasuki Era Digital yang Pen...