Laporan Akhir 2 - P8






1. Prosedur [kembali]

  • Rangkailah semua komponen di Proteus sesuai dengan percobaan 2 pada modul 
  • Buatkan program untuk STM32 di STM32CubeIDE, sesuaikan konfigurasinya GPIO dengan rangkaian pada proteus dan kondisi yang dipakai
  • Masukkan Program ke STM32 pada komponen STM32F103C8 di rangkaian proteus
  • Simulasikan rangkaian

2. Hardware dan Diagram Blok [kembali]

1. STM32F103C8

2. LED

3. Resistor


4. Touch Sensor

Sensor Sentuh


5. IR sensor
IR Sensor Module pin diagram/pin out/Pin Configuration

3. Rangkaian Simulasi dan Prinsip Kerja [kembali]

Rangkaian Simulasi: Saat IR sensor tidak mendeteksi gerakan dan touch sensor mendeteksi adanya sentuhan, maka RGBLED berwarna cyan

  


Prinsip Kerja:

        Rangkaian ini menggunakan mikrokontroler STM32F103C8 dengan dua inputan, yaitu PIR sensor yang terhubung ke pin PB10 dan sensor touch yang terhubung ke pin PB7, dan dua buah output berupa LED RGB yang dimana masing masing kaki RGB terhubung ke Pin PA6 ,PA7 ,PB0 dan Buzzer yang terhubung ke Pin PA8 . Konfigurasi sistem dilakukan melalui STM32 CubeIDE dengan menetapkan pengaturan pin sesuai skema rangkaian di Proteus. Setelah itu, opsi debug dipilih menggunakan Serial Wire, dan clock diatur ke Crystal/Ceramic Resonator supaya sistem tersebut dapat bekerja dengan stabil. Setelah konfigurasi selesai, CubeIDE akan secara otomatis menghasilkan kode dasar sesuai dengan pengaturan yang telah dibuat sebelumnya.

    Dalam pemrograman, kode tambahan ditulis pada loop utama dan pada blok while menggunakan struktur if-else untuk mengontrol RGB LED berdasarkan inputan pada sensor. Jika pada sensor PIR mendeteksi adanya objek maka LED RED menyala dan sensor touch mendeteksi sentuhan maka LED Green akan menyala, dan jika kedua sensor mendetaksi adanya objek dan sentuhan maka diperoleh warna kuning pada LED dikarenakan kombinasi warna red dan green.

    Setelah pemrograman selesai, proyek dikompilasi menjadi file hex dan diunggah ke mikrokontroler dalam simulasi pada Proteus. Saat dijalankan, sistem akan menampilkan output sesuai logika yang diprogram: RGB LED mati pada kondisi awal, menyala dengan warna green jika sensor touch aktif tanpa deteksi objek oleh sensor PIR, dan warna merah menyala ketika sensor PIR mendeteksi objek tanpa adanya sentuhan pada touch sensor

4. Flowchart dan Listing Program [kembali]

Flowchart:



Listing Program:

#include "main.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { uint8_t pir_status = HAL_GPIO_ReadPin(GPIOB, PIR_Pin); uint8_t touch_status = HAL_GPIO_ReadPin(GPIOB, TOUCH_Pin); HAL_GPIO_WritePin(GPIOA, GREEN_Pin | RED_Pin | BUZZER_Pin, GPIO_PIN_RESET); if (pir_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); } if (touch_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); } HAL_Delay(100); } }

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_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; __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); 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(GPIOA, RED_Pin|GREEN_Pin|BUZZER_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET); GPIO_InitStruct.Pin = RED_Pin|GREEN_Pin|BUZZER_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = BLUE_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(BLUE_GPIO_Port, &GPIO_InitStruct); GPIO_InitStruct.Pin = PIR_Pin|TOUCH_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; 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. Analisa [kembali]




6. Kondisi [kembali]

Buatlah Rangkaian seperti gambar percobaan 8 pada modul dengan LED RGB,Buzzer,touch sensor dan PIR

7. Video Simulasi [kembali]
8. Download file [kembali]

Analisa [Download]
Vid. Simulasi [Download]

Komentar

Postingan populer dari blog ini

HOME

Modul 1

HOME