LA 2 M2

[menuju akhir]

Laporan Akhir Percobaan Raspberry Pi Pico



1. Prosedur [kembali] 

Prosedur Percobaan dengan Raspberry Pi Pico:
1. Tentukan komponen dan Rangkai Komponen, yaitu Sambungkan potensiometer ke pin ADC0 (GPIO 26). Sambungkan motor servo ke pin GPIO 1. Sambungkan buzzer ke pin GPIO 14. Sambungkan sensor DHT22 ke pin GPIO 16.Pastikan semua komponen mendapat suplai 3.3V dan GND dari Pico.
2. Sambungkan Raspberry Pi Pico ke laptop menggunakan kabel USB.
3. Konfigurasi Koding dengan membuka software Thonny. Ketik atau paste koding Python yang sudah disiapkan ke editor Thonny. Pastikan konfigurasi pin dalam kode sesuai:
pot = ADC(26)
servo = PWM(Pin(1))
buzzer = PWM(Pin(14))
dht_sensor = dht.DHT22(Pin(16))
4. Upload & Jalankan Program, Simpan file di Raspberry Pi Pico. Klik tombol Run di Thonny untuk menjalankan program.
5. Amati Hasil, putar potensiometer dan amati perubahan sudut motor servo. Perhatikan hasil suhu dan kelembapan yang muncul di monitor Thonny. Jika suhu >35°C atau kelembapan >50%, buzzer akan berbunyi sesuai kondisi:
Suhu tinggi → melodi tertentu.
Kelembapan tinggi → melodi lain.
Keduanya tinggi → melodi gabungan.



2. Hardware dan Diagram Blok [kembali]

a. Hardware
1) Laptop yang sudah terinstal Software Thonny 
2) Port sambungan kabel dari laptop ke Raspberry Pi Pico(USB)

3) White Board atau Project Board
4) Raspberry Pi Pico
5) Potensiometer

6) Motor Servo 

7) Jumper

8) DHT22

b. Blok Diagram



a. Rangkaian 

Prinsip Kerja:
    Potensiometer ➔ Servo
Potensiometer terhubung ke pin ADC (GPIO 26) berfungsi sebagai input analog. Raspberry Pi Pico membaca nilai tegangan dari potensiometer secara berkala melalui ADC, lalu mengubah nilai tersebut menjadi sudut antara 0–180 derajat. Nilai ini di-mapping menjadi duty cycle PWM untuk mengatur posisi motor servo di GPIO 1. Ini proses yang real-time dan kontinu.
    DHT22 (Sensor Suhu & Kelembapan)
Sensor ini memberi data suhu dan kelembapan secara digital lewat GPIO 16. Raspberry Pi Pico membaca datanya setiap siklus loop. Jika suhu > 35°C atau kelembapan > 50%, maka program memutuskan untuk membunyikan buzzer (di GPIO 14) dengan nada yang spesifik—tergantung kondisi apa yang terdeteksi (suhu tinggi, kelembapan tinggi, atau keduanya).
    Buzzer
Buzzer dikontrol dengan PWM juga. Program menentukan frekuensi dan durasi nada berdasarkan kondisi suhu/kelembapan, sehingga buzzer bisa memainkan melodi yang berbeda sesuai dengan jenis peringatannya.
   
Tidak ada interrupt eksternal di sini – semua input (potensiometer & DHT22) dipantau terus dalam loop (polling). Raspberry Pi Pico langsung memproses hasil pembacaan untuk menentukan apa yang harus dilakukan oleh servo & buzzer.

Kesimpulannya, Prinsip kerja dari percobaan menggunakan Raspberry Pi Pico ini adalah memanfaatkan mikrocontroller untuk membaca input analog dan digital lalu mengendalikan output berdasarkan hasil pembacaan tersebut. Potensiometer berfungsi sebagai input analog yang nilainya dibaca melalui pin ADC0 untuk mengatur sudut motor servo secara real-time. Sensor DHT22 berperan untuk membaca suhu dan kelembapan udara secara digital melalui pin GPIO 16. Hasil pembacaan sensor ini digunakan sebagai acuan untuk mengendalikan buzzer; jika suhu melebihi 35°C atau kelembapan lebih dari 50%, buzzer akan membunyikan melodi tertentu sesuai kondisi tersebut. Motor servo diatur menggunakan sinyal PWM pada pin GPIO 1, sementara buzzer juga dikontrol dengan PWM pada pin GPIO 14 untuk menghasilkan nada. Seluruh proses dikendalikan dalam loop utama program tanpa penggunaan interrupt eksternal, di mana mikrocontroller terus-menerus memantau dan memproses data secara polling. Dengan prinsip kerja ini, Raspberry Pi Pico mampu menjalankan kontrol otomatis berdasarkan kondisi lingkungan dan input dari potensiometer, lalu memberikan respons fisik berupa gerakan servo dan bunyi buzzer secara langsung.

Jadi secara keseluruhan, prinsip kerjanya:
Membaca input analog (potensiometer) ➔ memutar servo.
Membaca data suhu & kelembapan (DHT22) ➔ memutuskan output buzzer.
Semua berlangsung kontinu & otomatis selama program berjalan.



a. Flowchart

b. Listing Program
from machine import Pin, ADC, PWM import time import dht # Inisialisasi potensiometer pada GPIO 26 (ADC0) pot = ADC(26) # Inisialisasi motor servo pada GPIO 1 (PWM) servo = PWM(Pin(1)) servo.freq(50) # Frekuensi PWM untuk servo # Inisialisasi buzzer sebagai PWM pada GPIO 14 buzzer = PWM(Pin(14)) buzzer.duty_u16(0) # Tidak ada suara saat awal # Inisialisasi sensor DHT22 pada GPIO 16 dht_sensor = dht.DHT22(Pin(16)) # Fungsi mapping nilai 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) # Fungsi untuk membunyikan buzzer dengan nada tertentu def play_buzzer_note(frequency, duration_ms): buzzer.freq(frequency) buzzer.duty_u16(32768) # Volume setengah time.sleep_ms(duration_ms) buzzer.duty_u16(0) time.sleep_ms(50) # Jeda antar nada # Fungsi melodi untuk suhu tinggi def play_high_temp_melody(): play_buzzer_note(880, 200) # A5 play_buzzer_note(988, 200) # B5 play_buzzer_note(1047, 200) # C6 # Fungsi melodi untuk kelembapan tinggi def play_high_humidity_melody(): play_buzzer_note(659, 200) # E5 play_buzzer_note(698, 200) # F5 play_buzzer_note(784, 200) # G5 # Fungsi melodi kombinasi suhu dan kelembapan tinggi def play_combined_alert_melody(): play_buzzer_note(1047, 200) # C6 play_buzzer_note(1175, 200) # D6 play_buzzer_note(1319, 200) # E6 while True: # Baca potensiometer pot_value = pot.read_u16() servo_angle = map_value(pot_value, 0, 65535, 0, 180) servo_duty = map_value(servo_angle, 0, 180, 1638, 8192) servo.duty_u16(servo_duty) # Baca suhu dan kelembapan dari DHT22 try: dht_sensor.measure() temperature = dht_sensor.temperature() humidity = dht_sensor.humidity() print(f"Suhu: {temperature}°C | Kelembapan: {humidity:.1f}%") # Cek kondisi dan mainkan melodi sesuai kondisi if temperature > 35 and humidity > 50: print("🔥💧 Buzzer ON: Suhu & Kelembapan tinggi!") play_combined_alert_melody() elif temperature > 35: print("🔥 Buzzer ON: Suhu tinggi!") play_high_temp_melody() elif humidity > 50: print("💧 Buzzer ON: Kelembapan tinggi!") play_high_humidity_melody() else: buzzer.duty_u16(0) # Matikan suara jika normal except OSError: print("⚠️ Gagal membaca sensor DHT22.") time.sleep(0.5)


5. Analisa [kembali]
1. Analisa bagaimana perbedaan implementasi PWM antara STM32 dan Raspberry Pi Pico serta dampaknya terhadap kontrol motor dan LED.
Jawab:
Berdasarkan saat praktikum, terdapat dua mikrokontroler yang dibandingkan, yaitu STM32 dan Raspberry Pi Pico, yang masing-masing memiliki karakteristik berbeda dalam implementasi PWM. 
    STM32 dikenal memiliki modul PWM berbasis hardware yang kuat dan presisi, sehingga sangat ideal untuk aplikasi yang memerlukan kontrol ketat seperti motor DC. Dalam percobaan yang dilakukan, STM32 dihubungkan dengan motor DC yang dikendalikan melalui input dari touch sensor. Ketika touch sensor ditekan, motor DC dinyalakan, dan saat touch sensor dilepas kembali, motor DC dimatikan. Ini menunjukkan bahwa STM32 mampu memproses input secara real-time dan memberikan respon cepat serta stabil. Kemampuan PWM yang presisi memungkinkan kontrol kecepatan dan daya motor berjalan halus, yang sangat penting untuk mencegah kerusakan dan menjaga performa motor tetap optimal. Dengan kata lain, PWM STM32 sangat cocok untuk aplikasi industri atau robotik yang memerlukan kontrol motor yang akurat dan andal.
    Sementara itu, Raspberry Pi Pico memiliki PWM yang juga mumpuni namun lebih sederhana dan biasanya digunakan untuk aplikasi yang tidak memerlukan ketelitian tinggi, seperti pengendalian LED atau buzzer. Dalam percobaan ini, Raspberry Pi Pico digunakan untuk memonitor suhu dan kelembapan. Berdasarkan hasil pembacaan sensor, Pico akan memutuskan untuk memainkan melodi tertentu melalui buzzer. Jika suhu lebih dari 35°C dan kelembapan lebih dari 50%, buzzer akan memainkan nada peringatan gabungan; jika hanya suhu yang tinggi, buzzer memainkan melodi suhu tinggi; jika hanya kelembapan yang tinggi, buzzer memainkan melodi kelembapan tinggi; dan jika semua normal, buzzer dimatikan. Di sini, PWM digunakan untuk mengatur frekuensi nada buzzer yang keluar. Meskipun PWM Pico tidak sepresisi STM32, untuk tugas ringan seperti ini, Pico tetap mampu menjalankan fungsinya dengan baik. Perbedaan utama yang terlihat adalah Pico lebih cocok untuk aplikasi monitoring yang sederhana dan tidak memerlukan kontrol daya yang berat, karena PWM-nya lebih dioptimalkan untuk output ringan. 
    Dari perbandingan ini dapat disimpulkan bahwa STM32 unggul dalam hal presisi dan kecepatan respons karena PWM-nya didukung langsung oleh hardware timer, yang memungkinkan kontrol perangkat berat seperti motor berjalan optimal dan aman. Sebaliknya, Raspberry Pi Pico lebih cocok untuk aplikasi yang bersifat indikator atau alarm, di mana PWM cukup digunakan untuk mengatur LED atau buzzer tanpa memerlukan ketelitian yang tinggi. Perbedaan implementasi ini berdampak signifikan terhadap hasil akhir; STM32 mampu mengendalikan motor dengan mulus dan cepat sesuai perubahan input sensor, sementara Raspberry Pi Pico lebih fokus pada pemberian notifikasi suara sesuai hasil monitoring lingkungan. Dengan demikian, pilihan mikrokontroler harus disesuaikan dengan kebutuhan aplikasi; STM32 untuk kontrol presisi tinggi, dan Raspberry Pi Pico untuk pengendalian sederhana.

2. Analisa bagaimana cara pembacaan nilai sensor analog menggunakan ADC pada STM32 dan Raspberry Pi Pico
Jawab: 
    Dalam percobaan yang dilakukan, STM32 menunjukkan kemampuannya dalam pembacaan nilai sensor analog menggunakan ADC dengan cepat dan responsif. Ketika touch sensor tidak disentuh, STM32 menjalankan stepper motor, namun begitu touch sensor ditekan, nilai ADC berubah dan motor DC langsung menyala, sementara stepper motor dimatikan. Hal ini menunjukkan bahwa ADC 12-bit pada STM32 mampu mengonversi sinyal analog menjadi nilai digital dalam rentang 0 hingga 4095 secara cepat dan akurat, sangat cocok untuk aplikasi yang memerlukan kontrol dinamis. STM32 juga dapat melakukan pembacaan serentak dari beberapa saluran ADC menggunakan fitur scan mode, serta mendukung DMA (Direct Memory Access) untuk mengakses data tanpa membebani prosesor utama. Ini memberikan kestabilan dan presisi yang diperlukan dalam aplikasi seperti pengendalian motor. 
    Sementara itu, pada Raspberry Pi Pico, pembacaan nilai sensor analog dilakukan menggunakan ADC 12-bit yang juga mengubah sinyal analog menjadi nilai digital dalam rentang yang sama, 0 hingga 4095. Percobaan yang dilakukan dengan Pico terkait dengan pembacaan suhu dan kelembapan, di mana jika kedua nilai tersebut melebihi ambang batas, buzzer akan aktif dengan memainkan melodi yang sesuai. Meskipun Pico dapat melakukan pembacaan ADC menggunakan Python, Pico hanya memiliki tiga pin ADC (ADC0, ADC1, dan ADC2), yang berarti pembacaan dari beberapa sensor harus dilakukan secara bergantian. Proses pembacaan ini lebih sederhana dan cukup efektif untuk aplikasi monitoring seperti suhu dan kelembapan, namun tanpa fitur tambahan seperti DMA atau oversampling, Pico terbatas dalam hal akurasi dan kecepatan pembacaan pada aplikasi yang lebih kompleks atau saat banyak sensor perlu dibaca bersamaan. 
    Secara keseluruhan, STM32 lebih unggul dalam hal kecepatan, presisi, dan kemampuan untuk menangani pembacaan dari banyak sensor secara bersamaan, menjadikannya pilihan tepat untuk aplikasi yang memerlukan kontrol perangkat yang dinamis dan cepat. Sementara itu, Raspberry Pi Pico meskipun efektif untuk aplikasi monitoring yang lebih sederhana, memiliki keterbatasan dalam hal kecepatan respon dan kemampuan pembacaan sensor secara bersamaan, membuatnya lebih cocok untuk aplikasi yang tidak memerlukan pembacaan sensor dalam waktu yang sangat cepat.

3. Analisa bagaimana penggunaan interrupt eksternal dalam mendeteksi input dari sensor atau tombo pada STM32 dan Raspberry Pi Pico.
Jawab:
    Pada percobaan STM32 yang menggunakan motor DC, stepper motor, dan sensor touch, interrupt eksternal dimanfaatkan untuk mendeteksi input dari sensor touch secara real-time. Sensor touch yang terhubung ke pin PB0 dikonfigurasi sebagai input dengan mode interrupt eksternal menggunakan fitur EXTI (External Interrupt/Event Controller) bawaan STM32. Ketika sensor disentuh atau dilepas, terjadi perubahan logika pada pin tersebut yang secara otomatis memicu interrupt. STM32 kemudian menjalankan fungsi callback khusus (HAL_GPIO_EXTI_Callback) yang langsung mengeksekusi aksi tertentu, yaitu menyalakan atau mematikan motor DC dan menghentikan pergerakan stepper motor saat sensor aktif. Penggunaan interrupt eksternal ini memungkinkan respon yang cepat dan efisien tanpa perlu memantau status sensor secara terus-menerus di dalam loop utama, sehingga sistem tetap hemat resource dan responsif terhadap perubahan input dari sensor.
    Pada percobaan dengan Raspberry Pi Pico yang menggunakan komponen motor servo, buzzer, potensiometer, dan sensor DHT22, metode yang digunakan untuk mendeteksi input dari sensor atau tombol adalah dengan teknik polling, bukan interrupt eksternal. Potensiometer yang terhubung ke ADC (GPIO 26) dibaca secara berkala di dalam loop utama untuk mengontrol sudut motor servo. Begitu juga dengan sensor DHT22 yang membaca suhu dan kelembapan secara rutin di dalam loop menggunakan perintah measure(). Hasil pembacaan sensor ini kemudian menentukan apakah buzzer akan berbunyi dengan melodi tertentu, sesuai dengan kondisi suhu dan kelembapan yang terdeteksi. Dalam program ini tidak ditemukan penggunaan interrupt eksternal, karena tidak ada konfigurasi interrupt seperti irq() atau callback yang biasanya digunakan untuk menangani perubahan status input secara otomatis. Semua input direspons secara berkala melalui pengecekan terus-menerus di loop utama. Hal ini cukup wajar karena baik potensiometer maupun DHT22 memang lebih cocok dibaca dengan polling, dan tidak memerlukan reaksi seketika yang mendesak seperti pada kasus tombol darurat atau sensor sentuh. Dengan demikian, interrupt eksternal belum diterapkan dalam percobaan ini karena seluruh sistem berjalan dengan pemantauan rutin melalui loop utama.

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:
    Pada percobaan yang dilakukan, HAL_GetTick() pada STM32 dan utime.ticks_ms() pada Raspberry Pi Pico memiliki fungsi yang serupa, yaitu untuk menghitung waktu yang telah berlalu sejak sistem dinyalakan dalam satuan milidetik.
    Fungsi HAL_GetTick() adalah bagian dari HAL (Hardware Abstraction Layer) yang disediakan oleh STM32. Fungsi ini mengembalikan jumlah milidetik yang telah berlalu sejak sistem dinyalakan (dalam hal ini sejak HAL_Init() dipanggil). Ini didasarkan pada SysTick timer yang sudah terkonfigurasi oleh sistem untuk menghasilkan interrupt dengan periode tetap (biasanya setiap 1 ms). Ketika interrupt terjadi, HAL_GetTick() menginkrementasi nilai internal untuk mencatat berapa lama sistem telah berjalan.  Fungsi ini digunakan untuk mengukur waktu dalam STM32 dengan presisi tinggi seperti pengaturan delay atau penghitungan interval waktu.
    Fungsi utime.ticks_ms() pada Raspberry Pi Pico adalah bagian dari pustaka utime yang digunakan untuk menangani waktu di platform tersebut. Fungsi ini mengembalikan jumlah milidetik yang telah berlalu sejak sistem di-reboot. Fungsi ini bekerja dengan cara memanfaatkan timer internal yang menginkrementasi waktu secara berkala. utime.ticks_ms() juga mengembalikan nilai dalam milidetik yang dapat digunakan untuk menghitung waktu atau untuk keperluan delay, serupa dengan HAL_GetTick() pada STM32, namun dengan API yang lebih sederhana.
    Kedua fungsi tersebut memiliki tujuan yang sama, yaitu mengukur waktu yang telah berlalu sejak sistem dinyalakan, tetapi STM32 dengan HAL_GetTick() lebih dioptimalkan untuk aplikasi waktu real-time dan presisi tinggi, sementara utime.ticks_ms() pada Raspberry Pi Pico lebih cocok untuk aplikasi dengan kebutuhan waktu yang tidak terlalu ketat, meskipun tetap efektif dalam banyak aplikasi dasar.

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:
    Pada percobaan yang dilakukan, STM32 dan Raspberry Pi Pico menggunakan PWM (Pulse Width Modulation) untuk menghasilkan sinyal gelombang persegi dengan cara yang berbeda, baik dalam hal konfigurasi pin maupun pemanfaatan timer internal. Berikut adalah analisis berdasarkan percobaan yang dilakukan:
a. STM32
    Pada STM32, konfigurasi PWM dilakukan dengan memanfaatkan timer internal dan pin GPIO yang dikonfigurasi untuk fungsi PWM. Proses ini dimulai dengan mengonfigurasi pin GPIO dalam mode output alternatif (Alternate Function), yang kemudian dihubungkan ke timer internal. PWM dihasilkan dengan mengatur duty cycle dan frekuensi melalui register timer yang bersangkutan. Timer ini mengontrol siklus kerja sinyal PWM dan menghasilkan sinyal gelombang persegi.
    Konfigurasi Pin PWM: Pin yang digunakan untuk PWM pada STM32 dikonfigurasi dalam mode output alternatif dan terkait dengan timer yang spesifik. Dalam kode STM32, hal ini dilakukan dengan mengonfigurasi pin menggunakan GPIO_Init() dan menentukan fungsi timer melalui HAL_TIM_PWM_Start().
    Pemanfaatan Timer Internal: STM32 memiliki beberapa timer dengan presisi yang tinggi, memungkinkan kontrol yang lebih akurat terhadap frekuensi dan duty cycle sinyal PWM. Timer ini akan menghasilkan sinyal PWM yang stabil dan dapat dikendalikan dengan presisi tinggi. Misalnya, untuk mengubah frekuensi PWM atau duty cycle, kita hanya perlu memodifikasi register timer yang sesuai.

b. Raspberry Pi Pico
    Pada Raspberry Pi Pico, sinyal PWM dihasilkan menggunakan timer internal yang dikendalikan melalui Python. Pin GPIO dapat dikonfigurasi untuk menghasilkan PWM dengan menggunakan pustaka machine.PWM(), yang mengatur frekuensi dan duty cycle sinyal PWM.
    Konfigurasi Pin PWM: Pada Raspberry Pi Pico, pin GPIO dapat dengan mudah dikonfigurasi untuk menghasilkan PWM menggunakan PWM() dari pustaka machine. Pin yang digunakan cukup ditentukan dalam fungsi Pin(), dan kontrol atas duty cycle dilakukan dengan memodifikasi nilai duty cycle melalui duty_u16().
    Pemanfaatan Timer Internal: Raspberry Pi Pico menggunakan timer internal untuk menghasilkan PWM. Meskipun kontrolnya lebih sederhana dibandingkan STM32, Pico mampu menghasilkan sinyal PWM dengan frekuensi dan duty cycle yang dapat diatur dengan menggunakan fungsi seperti freq() untuk frekuensi dan duty_u16() untuk duty cycle. Namun, meskipun cukup efektif untuk aplikasi sederhana, timer internal pada Pico memiliki keterbatasan jika dibandingkan dengan STM32 dalam hal presisi waktu.

Perbedaan Utama
- Kontrol Pin: Pada STM32, konfigurasi pin PWM lebih rumit karena melibatkan pengaturan mode alternatif untuk pin dan penggunaan register timer yang lebih detail. Di sisi lain, Raspberry Pi Pico menggunakan pustaka yang lebih sederhana seperti machine.PWM() untuk mengontrol pin GPIO sebagai PWM.
- Pemanfaatan Timer Internal: STM32 memiliki kemampuan timer yang lebih canggih dengan lebih banyak fitur dan kontrol lebih presisi terhadap frekuensi dan duty cycle. Raspberry Pi Pico menggunakan timer internal yang cukup sederhana, cocok untuk aplikasi yang tidak memerlukan presisi waktu yang sangat tinggi.
- Presisi: STM32 memiliki presisi lebih tinggi dalam kontrol frekuensi PWM berkat timer dengan resolusi tinggi, yang sangat ideal untuk aplikasi yang membutuhkan sinkronisasi atau pengaturan waktu yang lebih akurat. Raspberry Pi Pico cukup untuk aplikasi yang lebih sederhana, tetapi keterbatasan presisinya dapat mempengaruhi aplikasi yang lebih kompleks.

    Secara keseluruhan, STM32 memberikan lebih banyak fleksibilitas dan presisi dalam hal kontrol PWM dan penggunaan timer internal, sementara Raspberry Pi Pico lebih mudah diatur untuk aplikasi yang tidak membutuhkan kontrol presisi yang sangat tinggi. 


SOAL TAMBAHAN
1. Kenapa saat percobaan 8 tidak bisa di lakukan?
Jawab:
Pada percobaan 8, simulasi tidak dapat dilakukan dengan STM32, hal dikarenakan
a. Konfigurasi Software atau driver Tidak Tepat
    Pengaturan software untuk debugger (ST-Link) dan perangkat lunak pengembang (seperti STM32CubeIDE) mungkin tidak sesuai, menyebabkan STM32 tidak dapat terdeteksi atau diprogram. Pastikan driver ST-Link sudah terinstal dengan benar, dan perangkat lunak (seperti STM32CubeIDE atau STM32CubeProgrammer) bisa mendeteksi ST-Link.
b. Koneksi Hardware Tidak Stabil
    Kabel atau konektor antara ST-Link dan STM32 mungkin tidak terpasang dengan baik atau ada masalah pada koneksi pin yang menghambat komunikasi. Periksa kabel dan konektor untuk memastikan koneksi yang stabil dan tidak ada kerusakan pada kabel.
c. Pengaturan Power
    Pastikan STM32 mendapatkan daya yang cukup dan stabil. Jika tegangan tidak sesuai, STM32 mungkin tidak dapat berfungsi dengan baik.
d. Kesalahan di Mode Boot STM32
    STM32 terjebak dalam mode boot yang salah, sehingga ST-Link tidak dapat mengakses mikrokontroler untuk pemrograman.
Maka, dengan memperbaiki konfigurasi software, memeriksa koneksi hardware, memastikan kestabilan daya, dan mengecek mode boot STM32, percobaan dapat dilakukan dengan lancar.
 
2. ⁠kenapa percobaan 8 untuk penggunaan motor dc menggunakan transistor?
Jawab:
    Pada percobaan 8, transistor digunakan dalam rangkaian motor DC untuk beberapa alasan, seperti transistor digunakan sebagai saklar untuk mengendalikan kapan motor DC menyala atau mati, terutama jika sumber daya motor berbeda dengan mikrokontroler. Selain itu, transistor juga memperkuat sinyal kontrol yang berasal dari mikrokontroler, mengingat mikrokontroler biasanya menghasilkan sinyal dengan arus kecil. Dengan demikian, transistor memperkuat sinyal tersebut agar motor dapat beroperasi dengan baik.
    Selain itu, bisa diketahui Pada rangkaian PWM (Pulse Width Modulation) untuk kontrol kecepatan motor terdapat adanya transistor. Transistor tersebut berperan dalam mengatur kecepatan motor dengan mengubah durasi sinyal yang dikirimkan ke motor. Transistor juga digunakan sebagai pelindung komponen lainnya, karena motor DC memiliki kumparan yang bisa menghasilkan tegangan balik (back EMF) yang dapat merusak rangkaian kontrol utama. Transistor berfungsi untuk membatasi back EMF tersebut, menjaga agar tidak masuk ke rangkaian kontrol dan melindungi komponen-komponen lainnya.

3. ⁠kenapa pin 15 diganti dengan pin 1 pada percobaan 5?
Jawab:
    Pada percobaan 5, Pin 15 merupakan salah satu pin GPIO yang bisa diprogram untuk berbagai fungsi, namun tidak semua pin pada Raspberry Pi Pico memiliki kemampuan PWM yang sama. Pin 15 ini pada Raspberry Pi Pico tidak dapat digunakan secara langsung untuk PWM karena tidak mendukung hardware PWM. Pin ini lebih terbatas dalam fungsinya untuk aplikasi yang membutuhkan kontrol sinyal yang lebih presisi, seperti pengendalian motor atau servo, berbeda dengan pin 1. Pin 1 dipilih karena mendukung fitur PWM dengan kontrol yang lebih tepat dan lebih mudah digunakan untuk aplikasi yang memerlukan pengendalian motor atau servo dengan sinyal PWM yang stabil. Sehingga, pin 1 lebih cocok untuk aplikasi yang membutuhkan kualitas sinyal PWM yang lebih baik dan kompatibilitas yang lebih luas.


Video Rangkaian Praktikum[tekan disini]
Prograam Thonny [tekan disini]
Datasheet Raspberry Pi Pico [tekan disini]
Datasheet buzzer [tekan disini]
Datasheet Motor servo [tekan disini]


[menuju awal]



Komentar

Postingan populer dari blog ini