TP 1 Modul 1

 

TP M1 P1 K5



1. Prosedur [Kembali]

Langkah-langkah untuk mensimulasikan rangkaian Kontrol Lampu Lorong menggunakan mikrokontroler STM32F103C8 adalah sebagai berikut:

  1. Perancangan Hardware di Proteus

    • Buka software Proteus dan buat project baru.

    • Pilih dan susun komponen utama: Mikrokontroler STM32F103C8, Sensor Touch (TTP223), Sensor PIR, LED, dan Buzzer.

    • Hubungkan komponen tersebut sesuai dengan skema Gambar pada modul. Pastikan jalur input dari sensor dan jalur output ke indikator (LED/Buzzer) terhubung ke pin GPIO yang tepat pada STM32.

  2. Inisialisasi Hardware pada STM32CubeIDE

    • Buka STM32CubeIDE dan buat project baru dengan target chip STM32F103C8.

    • Pada konfigurasi pin (Pinout & Configuration), tentukan pin mana saja yang akan bertindak sebagai GPIO_Input (untuk Sensor Touch dan PIR) serta GPIO_Output (untuk LED dan Buzzer).

    • Lakukan Generate Code untuk mendapatkan kerangka program secara otomatis.

  3. Pembuatan Program dan Logika Kondisi

    • Tuliskan logika program pada file main.c.

    • Rancang kode agar memenuhi kondisi: Saat Sensor Touch mendeteksi sentuhan untuk pertama kalinya, program akan memberikan sinyal High ke LED (menyala) dan Buzzer (berbunyi), sekaligus menonaktifkan pembacaan data dari Sensor PIR.

  4. Kompilasi dan Konversi File (.hex)

    • Lakukan proses Build Project pada STM32CubeIDE.

    • Pastikan pengaturan project sudah diatur untuk menghasilkan output file dalam format Intel HEX (.hex). File ini nantinya akan digunakan sebagai "otak" untuk simulasi di Proteus.

  5. Simulasi Rangkaian

    • Kembali ke aplikasi Proteus, klik dua kali pada komponen STM32F103C8.

    • Pada bagian Program File, cari dan pilih file .hex yang sudah di-build tadi.

    • Jalankan simulasi dengan menekan tombol Play. Amati apakah LED dan Buzzer merespons sentuhan pertama sesuai dengan kondisi yang diminta.

 

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. Touch Sensor (Modul TTP223): Berfungsi sebagai perangkat input untuk mendeteksi sentuhan fisik dari pengguna. 


  3. PIR Sensor (HC-SR501): Berfungsi sebagai perangkat input sekunder untuk mendeteksi pergerakan objek (manusia). Catatan: Sesuai kondisi, sensor ini akan diabaikan/dinonaktifkan oleh mikrokontroler setelah sensor sentuh aktif untuk pertama kalinya. 


  4. LED (Warna Merah): Bertindak sebagai perangkat output visual (indikator lampu) yang akan menyala ketika kondisi terpenuhi. 


  5. Buzzer: Bertindak sebagai perangkat output audio yang akan berbunyi sebagai peringatan/tanda ketika kondisi terpenuhi. 


  6. Push Button & Resistor (10k Ohm, 220 Ohm): Komponen pendukung tambahan. Push button biasanya digunakan untuk reset atau input manual tambahan, sedangkan resistor digunakan sebagai penahan arus (misalnya pada LED agar tidak putus). 


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