LA Percobaan 3

 


1. Prosedur[Kembali]

  1. Buka aplikasi simulator (Proteus).

  2. Buat Project baru dan masukkan komponen-komponen berikut ke dalam workspace: Mikrokontroler STM32F103C6, Touch SensorIR Obstacle Sensor, LED, Resistor (220Ω & 10kΩ), Buzzer, dan Push Button.

  3. Rangkai komponen sesuai dengan skematik (Hubungkan output sensor ke PA0 & PA1, dan input aktuator ke PB0 & PB1).

  4. Pastikan pin catu daya (VCC/VDDA dan GND/VSSA) terhubung dengan benar.

  5. Lakukan kompilasi (compile/build) pada Listing Program yang telah dibuat (misal menggunakan Arduino IDE atau STM32CubeIDE) hingga menghasilkan file .hex atau .elf.

  6. Klik ganda (double-click) pada komponen IC STM32 di Proteus, lalu masukkan rute (path) file .hex tersebut ke kolom Program File.

  7. Klik tombol Play / Run Simulation yang berada di pojok kiri bawah layar Proteus.

  8. Uji coba simulasi dengan mengklik logic toggle (mengubah nilai 0 menjadi 1) pada sensor sentuh atau sensor IR untuk melihat respon dari LED dan Buzzer.

2. Hardware dan Diagram Blok[Kembali]

- Rangkaian Percobaan

  1. Pusat Kendali: Mikrokontroler STM32F103C6

  2. Input: Modul Sensor Sentuh (Touch Sensor) & Sensor Inframerah (IR Obstacle Sensor)

  3. Output: LED Hijau/Merah (Indikator Visual) & Buzzer (Indikator Suara)

  4. Pendukung: Rangkaian Reset (Push button + Resistor )

3. Rangkaian Simulasi [Kembali]


  • Prinsip Kerja 
  1. Kondisi Standby: Saat simulasi dimulai, mikrokontroler membaca status pin input (PA0 dari Touch Sensor dan PA1 dari IR Sensor). Dalam kondisi normal (tidak ada sentuhan atau halangan), kedua sensor mengirimkan sinyal logika LOW (0) ke mikrokontroler. Aktuator (LED dan Buzzer) dalam keadaan mati.

  2. Input Aktif: Jika ada seseorang yang menyentuh gagang pintu (Sensor Sentuh aktif) ATAU melewati perimeter pintu (Sensor IR mendeteksi halangan), maka sensor yang bersangkutan akan mengirimkan sinyal logika HIGH (1) ke mikrokontroler. (Misal: PA0 menjadi HIGH terlebih dahulu).

  3. Pemrosesan: Mikrokontroler mendeteksi adanya perubahan logika menjadi HIGH pada salah satu atau kedua pin input. Sesuai dengan program yang ditanamkan, mikrokontroler mengambil keputusan untuk mengaktifkan sistem peringatan.

  4. Output Dihasilkan: Mikrokontroler mengirimkan sinyal logika HIGH secara berurutan/bersamaan ke pin PB0 dan PB1.

  5. Kondisi Aktif: Arus mengalir melalui pin PB0 menyalakan LED Merah (sebagai peringatan visual), dan arus di pin PB1 mengaktifkan Buzzer (sebagai peringatan audio). Output ini akan terus menyala selama sensor masih mendeteksi (logika 1).

4. Flowchart dan Listing Program[Kembali]

  • Flowchart

  • Listing Program

#include "main.h" uint8_t system_enable = 1; uint8_t touch_last = 0; void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { uint8_t touch_now = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); if (touch_now == GPIO_PIN_SET && touch_last == GPIO_PIN_RESET) { system_enable = !system_enable; HAL_Delay(200); } touch_last = touch_now; if (system_enable) { if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { Error_Handler(); } } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } void Error_Handler(void) { __disable_irq(); while (1) { } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t *file, uint32_t line) { } #endif



5. Video Demo[Kembali]


6. Soal Analisa[Kembali]

Analisa:
1. Bagaimana pengaruh pemilihan gpio masing2 dev board
Jawaban:
Pengaruh Pemilihan GPIO pada Setiap Development Board,Setiap pin GPIO pada mikrokontroler memiliki fungsi alternatif (multiplexing), seperti sebagai input analog (ADC), komunikasi (I2C, SPI), maupun I/O digital biasa. Pemilihan pin yang kurang tepat dapat menyebabkan fungsi khusus tidak termanfaatkan secara optimal, bahkan berpotensi merusak pin jika terjadi ketidaksesuaian tegangan, misalnya pin berlogika 3.3V diberi input 5V.

2. Bagaimana program deklarasi pin i/o pada stm32
Jawaban:
Deklarasi Pin I/O pada STM32,Proses deklarasi pin pada STM32 relatif lebih kompleks dibandingkan platform seperti Arduino. Tahapannya meliputi mengaktifkan clock pada port terkait, mengatur konfigurasi pin (mode, pull-up/pull-down, dan kecepatan) melalui struktur tertentu, kemudian melakukan inisialisasi menggunakan pustaka seperti HAL agar pin siap digunakan oleh sistem.

3. Analisa bagaimana  menerima input dan mengeluarkan output pada stm 32
Jawaban:
Mekanisme Input dan Output pada STM32, Pada proses input, mikrokontroler membaca level tegangan yang masuk ke pin, di mana tegangan mendekati 3.3V dikenali sebagai logika HIGH (1) dan mendekati 0V sebagai LOW (0). Sedangkan pada output, mikrokontroler mengendalikan rangkaian internal untuk menghasilkan tegangan HIGH (3.3V) atau menghubungkan pin ke ground untuk menghasilkan kondisi LOW.

4. Analisa pengaruh perubahan program pada main.h terhadap program main.c
Jawaban:
Pengaruh Perubahan File main.h terhadap main.c, File main.h berfungsi sebagai tempat deklarasi dan konfigurasi pin sehingga memudahkan pengelolaan program secara modular. Sementara itu, main.c berisi logika utama program. Jika terjadi perubahan konfigurasi pin pada hardware, cukup dilakukan pada main.h tanpa perlu mengubah logika program di main.c, sehingga lebih efisien dan terstruktur.

5. Analisa bagaimna program dalam analisa metode pendeteksian inputan pada stm 32
Jawaban:
Metode Pendeteksian Input pada STM32, Terdapat dua metode utama dalam mendeteksi input, yaitu polling dan interrupt. Pada metode polling, mikrokontroler secara terus-menerus memeriksa kondisi pin, yang dapat membebani kinerja CPU dan berisiko melewatkan sinyal. Sebaliknya, metode interrupt (EXTI) memungkinkan mikrokontroler merespon perubahan sinyal secara langsung tanpa harus memantau secara terus-menerus, sehingga lebih efisien dan responsif.

6. Analisa kelebihan mikrokontroler dibanding rangkaian logika
Jawaban:
Kelebihan Mikrokontroler dibandingkan Rangkaian Logika
Mikrokontroler memiliki keunggulan dalam fleksibilitas karena fungsi logikanya dapat diubah melalui perangkat lunak tanpa perlu memodifikasi rangkaian fisik. Selain itu, satu mikrokontroler mampu menggantikan banyak komponen logika konvensional, sehingga sistem menjadi lebih sederhana, hemat biaya, dan memiliki kemampuan pemrosesan yang lebih kompleks.

6. Video Simulasi[Kembali]


7. Download File[Kembali]

Video Simulasi [Download] 

Komentar

Postingan populer dari blog ini

Laporan Akhir Dioda Zener

Laporan Akhir Reverse Bias Dioda

Laporan Akhir Forward Bias Dioda