1. Prosedur [Kembali]

  • Pahami terlebih dahulu kondisi yang akan digunakan 
  • Buka software Proteus 8.17 
  • Persiapkan alat dan bahan 
  • Buat rangkaian sesuai dengan kondisi dan modul 
  • Buka software STM32Cube IDE 
  • Setelah membuka software, pilih perangkat STM32F103C8T6 
  • Sesuaikan konfigurasi pin sesuai dengan rangkaian proteus 
  • Buat kode program untuk mengoperasikan rangkaian tersebut sesuai dengan kondisi 
  • Konfigurasi kan program dengan software Proteus 
  • Jalankan simulasi rangkaian. 
  • Proses selesai

2. Hardware dan Diagram Blok[Kembali]

a. Hardware
1. STM32F103C8
TM32F103C8 adalah mikrokontroler berbasis ARM Cortex-M3 yang  dikembangkan oleh STMicroelectronics. Mikrokontroler ini sering digunakan dalam pengembangan sistem tertanam karena kinerjanya yang baik, konsumsi daya yang rendah, dan kompatibilitas dengan berbagai protokol komunikasi. Pada praktikum ini, kita menggunakan STM32F103C8 yang dapat diprogram menggunakan berbagai  metode, termasuk komunikasi serial (USART), SWD (Serial Wire Debug), atau JTAG untuk berhubungan dengan komputer maupun perangkat lain.

2. Touch Sensor

Touch sensor adalah sensor yang dapat mendeteksi sentuhan atau kontak dari jari manusia (atau objek lain) dan kemudian mengubahnya menjadi sinyal listrik.

3. PIR Sensor
PIR sensor (Passive Infrared Sensor) adalah sensor yang digunakan untuk mendeteksi pergerakan manusia atau makhluk hidup berdasarkan perubahan radiasi inframerah di sekitarnya.

4. LED

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.

b. Diagram Blok


3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]


Prinsip Kerja :

Prinsip kerja rangkaian ini berbasis pada sistem kendali mikrokontroler STM32F103C8 yang berfungsi sebagai unit pemroses utama untuk sinyal masukan dari Sensor PIR dan Sensor Touch. Secara operasional, sensor PIR yang terhubung pada pin masukan (PA0) bertugas mendeteksi radiasi inframerah dari gerakan manusia, sementara sensor Touch pada pin (PA1) mendeteksi adanya sentuhan fisik; kedua sensor ini mengirimkan sinyal logika digital berupa HIGH (1) saat terpicu dan LOW (0) saat dalam kondisi diam. Sesuai dengan kondisi yang diinginkan, ketika kedua sensor berada dalam status LOW (tidak mendeteksi gerakan maupun sentuhan), mikrokontroler akan memproses data tersebut dan mempertahankan pin keluaran (PB0 dan PB1) pada level tegangan rendah. Akibatnya, arus listrik tidak akan mengalir menuju LED (D1) dan Buzzer (BUZ1), sehingga LED tetap dalam kondisi mati dan buzzer tidak mengeluarkan suara. Sebaliknya, jika salah satu atau kedua sensor mendeteksi input, mikrokontroler akan mengubah status pin keluaran menjadi HIGH untuk mengaktifkan perangkat output sebagai indikator peringatan.

4. Flowchart dan Listing Program[Kembali]

A. Flowchart


B. Listring Program

#include "stm32f1xx_hal.h"

uint8_t system_enable = 0;

uint8_t touch_last = 0;

uint8_t pir_first_trigger = 1;

void SystemClock_Config(void);

static void MX_GPIO_Init(void);

void Error_Handler(void);

int main(void)

{

HAL_Init();

SystemClock_Config();

MX_GPIO_Init();

while (1)

{

uint8_t pir_now = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);

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;

if (system_enable)

{

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);

HAL_Delay(100);

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);

}

HAL_Delay(200);

}

touch_last = touch_now;

if (pir_now == GPIO_PIN_SET)

{

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

if (pir_first_trigger)

{

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);

HAL_Delay(100);

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);

pir_first_trigger = 0;

}

}

else

{

pir_first_trigger = 1;

if(!system_enable)

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);

}

if(system_enable)

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

}

}

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)

Error_Handler();

RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK |

RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1;

RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;

RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;

RCC_ClkInitStruct.APB1CLKDivider = 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_GPIOA_CLK_ENABLE();

__HAL_RCC_GPIOB_CLK_ENABLE();

GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET);

}

void Error_Handler(void)

{

__disable_irq();

while(1)

{

}

}

5. Video Demo[Kembali]


6. Analisa[Kembali]



7Download File[Kembali]

Download Rangkaian Simulasi [Klik Disini]
Download Video Simulasi [Klik Disini]
Download Analisa [Klik Disini]

No comments:

Post a Comment

  BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2024 Nama : Muhammad Fadhlurrahman Yuzary NIM : 2310952015 Elektronika A Dosen Pengampu ; ...