LAPORAN AKHIR 1




LAPORAN AKHIR 1
MODUL 1 PERCOBAAN 4

1. Rangkaian[Kembali]



2. Prinsip Kerja Rangkaian[Kembali]

Rangkaian ini menggunakan STM32 sebagai otaknya untuk membaca input dari sensor PIR dan sensor sentuh, lalu mengontrol LED RGB berdasarkan kondisi yang terdeteksi. Jadi, sistem ini bisa dibilang kayak indikator sederhana buat mendeteksi gerakan atau sentuhan.

Pertama, sensor PIR bertugas buat mendeteksi gerakan. Kalau ada benda bergerak di depan sensor, sistem bakal membaca nilai HIGH (1) dan LED biru akan menyala. Sebaliknya, kalau nggak ada gerakan, nilai yang dibaca LOW (0) dan LED biru akan mati.

Kedua, ada touch sensor yang bakal merespon kalau disentuh. Begitu sensor disentuh, LED hijau akan menyala selama 3 detik, lalu mati sendiri. Selama LED hijau nyala, LED merah dipastikan mati, jadi semacam ada delay sebelum sistem kembali ke kondisi awal.

Selanjutnya, ada kondisi kombinasi antara PIR dan touch sensor. Kalau sensor PIR nggak mendeteksi gerakan dan sensor sentuh juga nggak ditekan, maka LED merah akan menyala, tandanya sistem lagi "diam" atau standby. Tapi kalau salah satu sensor aktif (baik PIR mendeteksi gerakan atau touch sensor ditekan), LED merah otomatis mati, karena sistem tahu ada aktivitas di sekitarnya.

Intinya, rangkaian ini dibuat buat mendeteksi keberadaan orang atau interaksi pengguna. Kalau ada gerakan, LED biru nyala, kalau disentuh, LED hijau nyala sebentar, dan kalau semuanya diam, LED merah yang nyala. Bisa dipakai buat aplikasi sederhana kayak sistem keamanan atau smart device yang butuh respon terhadap gerakan dan sentuhan.

3. Video Simulasi[Kembali]


4. Analisa[Kembali]

SOAL ANALISA 

MODUL 1 General I/O

1. Analisa bagaimana pengaruh penggunaan/pemilihan GPIO pada STM32 dan Raspberry Pi Pico

Jawab: 

a. Pengaruh Pemilihan GPIO pada STM32

  • Fungsi Khusus
Banyak pin GPIO pada STM32 memiliki fungsi khusus seperti I2C, SPI, UART, ADC, dan PWM. Memilih pin yang tepat untuk fungsi tertentu akan memastikan bahwa perangkat berfungsi dengan baik. Misalnya, jika ingin menggunakan komunikasi I2C, maka harus memilih pin yang ditunjuk untuk SDA dan SCL.

  • Interrupts
Beberapa pin GPIO dapat dikonfigurasi untuk menerima interrupt. Ini memungkinkan perangkat untuk merespons peristiwa secara real-time, yang sangat penting dalam aplikasi yang memerlukan respons cepat.Pilih pin yang mendukung interrupt jika membutuhkannya.

  • Tegangan dan Arus
Setiap pin GPIO memiliki batasan tegangan dan arus. Memilih pin yang sesuai dengan spesifikasi komponen yang digunakan sangat penting untuk mencegah kerusakan.Pastikan pin yang dipilih dapat menangani arus yang dibutuhkan oleh perangkat yang terhubung.

  • Debouncing
Jika menggunakan tombol atau saklar, pemilihan pin dapat mempengaruhi cara menangani debouncing. Beberapa pin mungkin lebih rentan terhadap noise

  • Ketersediaan Pin
Pastikan untuk memeriksa ketersediaan pin. Jika menggunakan banyak perangkat, maka perlu memastikan bahwa rangkaian tidak kehabisan pin GPIO yang tersedia.

  • Pengaturan Mode
Setiap pin GPIO dapat diatur ke mode input atau output, dan juga dapat diatur untuk fungsi alternatif. Memilih pin yang tepat akan memudahkan pengaturan mode ini.

b. Pengaruh Pemilihan GPIO pada Rapsberry Pi Pico

  • Fungsi Khusus

Pin tertentu (misalnya, GP0 dan GP1) dapat digunakan untuk komunikasi I2C, sementara pin lain (misalnya, GP2 dan GP3) dapat digunakan untuk UART. Oleh karena itu, pemilihan pin harus disesuaikan dengan kebutuhan perangkat yang digunakan.

  • Interrupts

Beberapa pin GPIO dapat dikonfigurasi untuk menerima interrupt. Hal ini memungkinkan perangkat merespons peristiwa secara real-time, yang sangat penting dalam aplikasi yang memerlukan respons cepat. Pastikan pemilihan pin mendukung interrupt jika dibutuhkan dalam aplikasi yang sedang dibuat.

  • Tegangan dan Arus

Setiap pin GPIO memiliki batasan tegangan dan arus. Pemilihan pin yang sesuai dengan spesifikasi komponen sangat penting untuk mencegah kerusakan. Oleh sebab itu, perlu dipastikan bahwa pin yang digunakan dapat menangani arus yang dibutuhkan oleh perangkat yang terhubung.

  • Debouncing

Jika tombol atau saklar digunakan, pemilihan pin dapat memengaruhi cara menangani debouncing. Beberapa pin mungkin lebih rentan terhadap noise, sehingga hal ini harus diperhatikan saat menentukan pin untuk input digital.

  • Ketersediaan Pin

Sebelum menghubungkan banyak perangkat, perlu diperiksa ketersediaan pin GPIO yang masih dapat digunakan. Hal ini bertujuan untuk menghindari kehabisan pin yang diperlukan dalam suatu rangkaian.

2. Analisa bagaimana STM32 dan Raspberry Pi Pico menerima inputan dan menghasilkan output

Jawab: 

a. STM32

STM32 menerima input melalui konfigurasi pin sebagai input digital atau analog. Pin dapat diset untuk membaca status logika atau nilai analog menggunakan ADC (Analog to Digital Converter). Setelah menerima input, STM32 menghasilkan output dengan mengatur status pin ke HIGH atau LOW. Selain itu, STM32 juga dapat menghasilkan sinyal PWM (Pulse Width Modulation) untuk mengontrol perangkat seperti motor atau LED.

b. Rapsberry Pi Pico

Raspberry Pi Pico menerima input dengan membaca status pin yang telah dikonfigurasi sebagai input. Proses ini dapat dilakukan menggunakan fungsi dari pustaka MicroPython atau C/C++ untuk membaca nilai digital maupun analog melalui ADC. Untuk menghasilkan output, Pico mengubah status pin sesuai kebutuhan. Selain itu, Pico juga mampu menghasilkan PWM, yang dapat digunakan dalam pengendalian perangkat seperti motor dan LED.

3. Analisa bagaimana program deklarasi pin I/O pada STM32 dan Raspberry Pi Pico

Jawab: 

  • STM32

Pada STM32, deklarasi pin menggunakan struktur GPIO_InitTypeDef untuk mengonfigurasi pin. Proses ini melibatkan beberapa langkah utama:

  1. Mengaktifkan clock untuk port GPIO yang digunakan.
  2. Mengatur mode pin sebagai input atau output sesuai kebutuhan.
  3. Menginisialisasi pin dengan parameter yang telah ditentukan.
Contoh program:
#include "stm32f1xx_hal.h"

void GPIO_Config(void) {
    __HAL_RCC_GPIOA_CLK_ENABLE();  // Mengaktifkan clock untuk port GPIOA

    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin = GPIO_PIN_5;  // Pilih pin PA5
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;  // Set sebagai output push-pull
    GPIO_InitStruct.Pull = GPIO_NOPULL;  // Tidak menggunakan pull-up/pull-down
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;  // Kecepatan rendah

    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);  // Inisialisasi GPIOA pin 5
}


Program di atas mengonfigurasi pin PA5 sebagai output pada STM32 dengan mode push-pull, tanpa pull-up/pull-down, dan dengan kecepatan rendah.

  • Raspberry Pi Pico

Pada Raspberry Pi Pico, deklarasi pin lebih sederhana dan langsung. Pengguna dapat menginisialisasi pin dengan satu baris kode.

from machine import Pin

led = Pin(25, Pin.OUT)  # Mengatur pin 25 sebagai output untuk LED


Program ini mengonfigurasi pin 25 sebagai output, yang biasanya digunakan untuk mengontrol LED pada Raspberry Pi Pico.

4. Analisa Fungsi HAL_Delay(100) pada STM32 dan utime.sleep_ms(1) pada Raspberry Pi Pico

Jawab: 

  • Fungsi HAL_Delay(100) pada STM32 digunakan untuk menunda eksekusi program selama 100 milidetik dengan memanfaatkan timer internal. Penundaan ini bersifat blocking, tetapi tidak mengganggu interrupt lain yang sudah diatur dalam sistem.
  • Pada Raspberry Pi Pico, fungsi utime.sleep_ms(1) digunakan untuk menunda eksekusi selama 1 milidetik. Berbeda dengan HAL_Delay, fungsi ini lebih fleksibel karena memungkinkan CPU tetap dapat digunakan untuk tugas lain selama waktu tunggu, sehingga lebih efisien dalam konteks multitasking.

5. Analisa kesalahan yang menyebabkan tidak berjalannya percobaan 4 dan percobaan 7 yang telah dilakukan saat praktikum

Percobaan 4

  • Kesalahan pada wiring
Jika koneksi antara sensor, pin GPIO STM32, dan LED RGB tidak terpasang dengan benar, arus listrik mungkin tidak mengalir sebagaimana mestinya. Selain itu, grounding yang tidak sesuai bisa menyebabkan ketidakseimbangan dalam rangkaian, yang menghambat fungsi LED.

  • Masalah pada sensor

Masalah pada sensor dapat memengaruhi keluaran yang diharapkan. Jika sensor infrared atau sensor touch tidak bekerja sebagaimana mestinya, LED RGB tidak akan menerima sinyal untuk menyala. Output tegangan yang tidak sesuai atau adanya gangguan dari lingkungan sekitar juga bisa menjadi penyebabnya.

  • Tegangan dan arus yang tidak sesuai 

Tegangan dan arus yang tidak sesuai dapat menghambat kinerja LED. Jika tegangan yang diberikan terlalu rendah, LED mungkin tidak mendapatkan daya yang cukup untuk menyala. Sebaliknya, jika arus terlalu besar tanpa adanya pembatas, LED bisa mengalami kerusakan sebelum sempat berfungsi.

Percobaan 7

  • Kesalahan pada wiring 

Jika koneksi antara tombol, pin GPIO Raspberry Pi Pico, LED RGB, dan buzzer tidak terpasang dengan benar, arus mungkin tidak mengalir sebagaimana mestinya. Selain itu, grounding yang tidak tepat dapat mengakibatkan rangkaian tidak berfungsi sebagaimana yang diharapkan.

  • Masalah pada tombol

Jika tombol tidak berfungsi dengan baik, sinyal tidak akan dikirim ke Raspberry Pi Pico. Selain itu, output tegangan tombol yang tidak sesuai, baik karena konfigurasi pull-up atau pull-down yang salah, dapat menyebabkan mikrokontroler tidak mendeteksi perubahan status tombol dengan benar.

  • Konfigurasi LED RGB dan buzzer yang salah

Jika pin yang digunakan untuk LED dan buzzer tidak sesuai atau tidak ada sinyal PWM yang dikirimkan dengan benar, LED dan buzzer tidak akan aktif. Selain itu, jika warna LED tidak diatur dengan benar dalam program, bagian tertentu dari LED RGB mungkin tidak menyala.

  • Tegangan dan arus yang tidak sesuai

Jika tegangan yang diberikan ke LED RGB atau buzzer terlalu rendah, daya yang diterima tidak cukup untuk mengaktifkannya. Sebaliknya, jika arus terlalu besar tanpa adanya pembatas seperti resistor, LED atau buzzer dapat mengalami kerusakan sebelum berfungsi.

6. Download [Kembali]

Rangkaian Simulasi [Download]

Program STM32 [Download]

Infrared Sensor [Download]

Touch Sensor [Download]

Video Praktikum [Download]





Komentar

Postingan populer dari blog ini

Tugas Besar Elektronika

Aplikasi Adder Amplifier

Inverting Adder Amplifier