TP 1 MODUL 2

 

TP M2 P1 K7



1. Prosedur [Kembali]

Prosedur untuk percobaan Heart Rate Indicator menggunakan STM32 Bluepill adalah sebagai berikut:

  1. Persiapan Perangkat Keras: Hubungkan pin output sinyal dari sensor heartbeat ke pin PA0 pada mikrokontroler STM32 Bluepill.

  2. Rangkaian Indikator: Pasang komponen output dengan konfigurasi: LED Merah (indikator detak instan) ke pin PB10, LED Hijau (indikator normal) ke PB0, LED Kuning (indikator peringatan) ke PB1, dan Buzzer ke PB11.

  3. Konfigurasi Pin: Buka software STM32CubeIDE, buat project baru, lalu atur pin PA0 sebagai GPIO_Input dan pin PB0, PB1, PB10, PB11 sebagai GPIO_Output.

  4. Penulisan Algoritma: Tulis kode program pada looping utama (while(1)) untuk membaca sinyal digital dari sensor. Gunakan fungsi HAL_GetTick() untuk menghitung selisih waktu antar detak (rising edge) guna mendapatkan nilai BPM (Beats Per Minute).

  5. Penerapan Logika Kondisi: Tambahkan instruksi kondisional pada program:

    • Jika BPM > 60: Aktifkan LED Kuning dan Buzzer (Kondisi Waspada).

    • Jika BPM > 0 hingga 60: Aktifkan LED Hijau (Kondisi Normal).

    • Jika BPM = 0 (> 2 detik tanpa input): Matikan semua indikator (Kondisi Standby).

  6. Kompilasi dan Pengujian: Lakukan build pada program, tanamkan (flash) kode ke dalam cip mikrokontroler menggunakan ST-Link, lalu uji sistem dengan meletakkan jari pada sensor untuk memverifikasi kesesuaian output.

 

2. Hardware dan Diagram Blok [Kembali]

A. Daftar Hardware (Perangkat Keras) 

Berdasarkan Rangkaian Percobaan 1, perangkat keras yang digunakan pada simulasi ini beserta fungsinya adalah:

  1. Mikrokontroler STM32F103C8: Bertindak sebagai otak atau pusat pemrosesan utama (CPU) yang membaca input dari sensor dan mengendalikan output berdasarkan program yang ditanamkan. 


  2. Sensor Heartbeat

    HeartBeat sensor atau sensor detak jantung merupakan perangkat input analog yang berfungsi untuk mendeteksi denyut nadi manusia dengan prinsip fotopletismografi (PPG). Sensor ini biasanya bekerja menggunakan infra merah dan fototransistor untuk mengukur perubahan volume darah di dalam pembuluh darah kecil di ujung jari atau telinga. Sinyal yang dihasilkan bersifat analog, sehingga memerlukan fitur ADC (Analog to Digital Converter) pada mikrokontroler agar data detak jantung dapat diproses dan dikonversi menjadi nilai Beats Per Minute (BPM).

                                                               

  3. Push Button

    Push button adalah komponen sakelar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dalam suatu rangkaian dengan cara menekan tombolnya. Pada penggunaan mikrokontroler, komponen ini berperan sebagai perangkat input digital yang bekerja berdasarkan prinsip logika high atau low, di mana status penekanannya dapat dibaca oleh pin GPIO atau digunakan untuk memicu mekanisme interrupt eksternal. Agar pembacaan sinyal tetap stabil dan terhindar dari kondisi floatingpush button biasanya dikonfigurasi menggunakan resistor pull-up atau pull-down yang memastikan level tegangan input tetap berada pada kondisi logika yang jelas saat tombol tidak sedang ditekan.


  4. LED

    LED adalah komponen semikonduktor yang berfungsi sebagai indikator visual dengan cara memancarkan cahaya ketika dialiri arus listrik searah. Dalam sistem yang menggunakan PWM (Pulse Width Modulation), LED tidak hanya berfungsi sebagai indikator aktif atau tidaknya suatu sistem, tetapi juga dapat diatur tingkat kecerahannya melalui pengaturan duty cycle. LED sangat efektif digunakan sebagai penanda status sensor atau sebagai simulasi output yang merepresentasikan kondisi tertentu dari hasil pemrosesan data.

    LED adalah dioda semikonduktor yang dapat memancarkan cahaya ketika dialiri arus listrik. LED digunakan dalam berbagai aplikasi seperti indikator elektronik, pencahayaan, dan display. LED hanya bekerja pada arah bias maju dan memiliki berbagai warna yang ditentukan oleh material semikonduktornya.

  5. Buzzer


    Buzzer adalah suatu komponen elektronika yang berfungsi untuk mengubah energi listrik menjadi energi suara (bunyi) melalui mekanisme getaran. Komponen ini termasuk dalam kategori output device karena digunakan untuk memberikan respon berupa suara terhadap suatu kondisi atau perintah dalam rangkaian elektronik.

  6. Resistor



    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.

  7. Breadboard
    Breadboard adalah papan sirkuit tanpa solder yang digunakan sebagai media untuk merakit dan menguji purwarupa rangkaian elektronik secara sementara. Papan ini memiliki lubang- lubang koneksi yang terhubung secara internal (horizontal di bagian tengah dan vertikal di jalur daya samping) sehingga memudahkan pengguna untuk menghubungkan sensor, mikrokontroler, dan komponen lainnya dengan kabel jumper. Penggunaan breadboard sangat efisien dalam tahap pengembangan karena memungkinkan komponen untuk dilepas dan dipasang kembali dengan mudah tanpa merusak jalur sirkuit.
        1.  

 

B. Diagram Blok Sistem (Loop Tertutup) 

Sistem ini beroperasi dengan prinsip closed-loop (loop tertutup) secara perangkat lunak, di mana mikrokontroler secara terus-menerus (dalam kalang while(1)) memantau status masukan dan memperbarui status keluaran, serta menyimpan state atau kondisi terakhir (apakah sentuhan pertama sudah terjadi atau belum) sebagai umpan balik internal.

Berikut adalah representasi diagram bloknya: 


 

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

A. Rangkaian Simulasi 

Rangkaian simulasi "Kontrol Lampu Lorong" dirangkai menggunakan software Proteus. Pusat kendali rangkaian ini adalah mikrokontroler STM32F103C8 yang membaca sinyal masukan dari dua sensor (Touch Sensor dan PIR Sensor) dan mengendalikan indikator keluaran berupa LED Merah dan Buzzer. Terdapat juga komponen tambahan seperti push button dan resistor sebagai pendukung rangkaian listriknya.


B. Prinsip Kerja Rangkaian 

Rangkaian "Kontrol Lampu Lorong" ini beroperasi secara berurutan berdasarkan prioritas sinyal masukan (input) yang diproses oleh mikrokontroler STM32F103C8. Berikut adalah urutan prinsip kerjanya:

1. Kondisi Awal (Standby) 

Saat mikrokontroler pertama kali dihidupkan, sistem berada dalam kondisi standby. Mikrokontroler terus memantau status dari kedua input, yaitu Touch Sensor (Sensor Sentuh) dan PIR Sensor (Sensor Gerak). Pada tahap ini, pin output belum aktif sehingga LED dalam keadaan padam dan Buzzer tidak berbunyi.

2. Input Pertama Aktif (Touch Sensor) 

Komponen yang bertindak sebagai pemicu utama dalam sistem ini adalah Touch Sensor. Ketika pengguna menyentuh pad pada Touch Sensor untuk pertama kalinya, sensor ini mendeteksi perubahan kapasitansi dan mengirimkan sinyal digital berlogika HIGH (1) ke pin input mikrokontroler.

3. Eksekusi Output (LED dan Buzzer Aktif) 

Merespons masuknya sinyal HIGH dari Touch Sensor, mikrokontroler langsung mengeksekusi perintah keluaran. Mikrokontroler mengirimkan sinyal HIGH secara bersamaan ke dua pin outputnya. Arus listrik pun mengalir yang mengakibatkan LED Merah menyala (sebagai indikator visual) dan Buzzer berbunyi (sebagai peringatan audio).

4. Penguncian Sistem dan Penonaktifan Input Kedua (PIR Sensor) 

Sesaat setelah output aktif akibat sentuhan pertama, program di dalam mikrokontroler akan mengubah nilai flag (penanda kondisi) di dalam memorinya. Perubahan logika program ini berfungsi untuk memutus atau menonaktifkan pembacaan data dari input PIR Sensor.

5. Kondisi Input Terakhir (PIR Sensor Diabaikan) 

Sebagai hasil dari penguncian pada tahap sebelumnya, input dari PIR Sensor kini tidak lagi memiliki pengaruh terhadap sistem. Jika di kemudian waktu PIR Sensor mendeteksi adanya pergerakan (mengirim sinyal HIGH), mikrokontroler akan sepenuhnya mengabaikan sinyal tersebut. Output (LED dan Buzzer) akan tetap berada pada kondisi yang telah dipicu oleh Touch Sensor di awal.


4. Flowchart dan Listing Program [Kembali]

A. Flowchart Logika



B. Listing Program Bahasa C 

1. Deklarasi Library dan Prototipe Fungsi

#include "stm32f1xx_hal.h": Memasukkan library utama HAL (Hardware Abstraction Layer) yang berisi kumpulan instruksi khusus untuk mengendalikan mikrokontroler keluarga STM32F1.   
 
void SystemClock_Config(void);, static void MX_GPIO_Init(void);, void Error_Handler(void);: Deklarasi awal (prototipe) untuk fungsi-fungsi yang akan dijalankan nanti, yaitu fungsi pengaturan detak (clock), inisialisasi pin (GPIO), dan penanganan error.

2. Fungsi Utama (Main Program)

int main(void): Fungsi utama tempat mikrokontroler pertama kali mengeksekusi program. 
 
HAL_Init();: Menginisialisasi semua peripheral dasar mikrokontroler. 
 
SystemClock_Config();: Memanggil fungsi untuk mengatur kecepatan dan sumber clock mikrokontroler. 
 
MX_GPIO_Init();: Memanggil fungsi untuk mengonfigurasi pin mana saja yang akan bertindak sebagai Input dan Output. 
 
while (1): Membuat perulangan tak terbatas (infinite loop) agar program terus berjalan dan membaca sensor tanpa henti selama alat menyala.

3. Logika Pembacaan Sensor dan Output (Di dalam loop while)

uint8_t touch = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1);: Membaca status logika pada pin PA1 (jalur input Sensor Sentuh) dan menyimpan nilainya (1 atau 0) ke dalam variabel bernama touch. 
 
if (touch == GPIO_PIN_SET): Memeriksa apakah variabel touch bernilai SET (berlogika HIGH / angka 1), yang menandakan bahwa sensor sedang disentuh. 
 
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_SET);: Jika kondisi sentuhan terpenuhi, mikrokontroler akan mengirim logika SET (HIGH) secara bersamaan ke pin PB0 dan PB1. Hal ini akan menyalakan LED dan membunyikan Buzzer. 
 
else: Kondisi alternatif jika sensor sentuh tidak mendeteksi sentuhan (berlogika LOW). 
 
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET);: Mikrokontroler mengirim logika RESET (LOW) ke pin PB0 dan PB1, sehingga LED dan Buzzer tetap dalam keadaan mati/diam.

4. Blok Pengaturan Sistem (System Clock & GPIO Init)

void SystemClock_Config(void): Berisi serangkaian kode untuk mengaktifkan osilator internal (HSI) mikrokontroler agar sistem berjalan pada frekuensi dan kestabilan yang tepat. 
 
__HAL_RCC_GPIOA_CLK_ENABLE(); & __HAL_RCC_GPIOB_CLK_ENABLE();: Mengaktifkan jalur clock (jalur daya/sinyal) untuk Port A dan Port B agar pin-pin di port tersebut bisa difungsikan. 
 
GPIO_InitStruct.Pin = GPIO_PIN_1; hingga HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);: Mengonfigurasi pin PA1 secara spesifik sebagai pin INPUT tanpa tahanan internal (NOPULL) untuk menerima data dari Sensor Sentuh. 
 
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; hingga HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);: Mengonfigurasi pin PB0 dan PB1 secara spesifik sebagai pin OUTPUT_PP (Push-Pull) untuk mengalirkan arus ke LED dan Buzzer. 
 
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET);: Langkah pengamanan untuk memastikan bahwa saat alat pertama kali menyala, output ke LED dan Buzzer di-set ke keadaan mati (RESET) terlebih dahulu sebelum mulai membaca sensor.

 

5. Video Demo [Kembali]


6. Kondisi [Kembali]

Modul 1 Percobaan 1 Kondisi 5

Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi sensor Touch mendeteksi sentuhan pertama kali, maka LED menyala dan Buzzer berbunyi, serta PIR dinonaktifkan.


7. Video Simulasi [Kembali]




8. Download File [Kembali]

  • Rangkaian Proteus .pdsprj  disini 
  • Listing Program .workspace XML disini
  • Listing Program .hex disini
  • Video Simulasi Rangkaian disini 
  • Datasheet Touch Sensor disini
  • Datasheet PIR Sensor disini 
  • Datasheet STM32F103C8 disini 
  • Datasheet LED Red disini
  • Datasheet Buzzer Active disini
  • Library Touch Sensor disini 
  • Library PIR Sensor disini

Tidak ada komentar:

Posting Komentar

ADAM SIRHAN

  BAHAN PRESENTASI UNTUK ELEKTRONIKA 2024 Oleh : ADAM SIRHAN NIM. 2310952036   Dosen Pengampu : Dr. Darwison, S. T., M. T. NIDN. 0014096406 ...