tp 2 mikro m1




PERCOBAAN 8 KONDISI 1

1. Prosedur[Kembali]

  • 1.Rangkai semua komponen di Proteus sesuai dengan percobaan pada modul 
  • 2. Buat program untuk STM32 di STM32CubeIDE, sesuaikan konfigurasinya dengan       rangkaian pada proteus dan kondisi yang dipakai
  • 3. Masukkan Program ke STM32 di rangkaian proteus
  • 4. Simulasikan rangkaian

2. Hardware dan Diagram Blok[Kembali]

1. STM32F103C8




2. LED

3. Resistor



4. PIR Sensor





3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian Simulasi: 

a. Rangkaian sebelum ada kondisi

b. rangkaian setelah PIR sensor diberi logika 1

c. rangkaian setelah Touch Sensor diberi logika 1


Prinsip Kerja:

Rangkaian ini menggunakan mikrokontroler STM32F103C8 sebagai pusat kendali utama untuk memproses input dari sensor PIR (Passive Infrared) dan sensor sentuh (touch sensor) serta mengontrol LED RGB dan buzzer sebagai output. Sistem ini bekerja dengan prinsip dasar deteksi gerakan dan sentuhan untuk menghasilkan respons yang sesuai dalam bentuk cahaya dan suara.

Prinsip Kerja Sensor PIR dan Sensor Sentuh

  • Sensor PIR berfungsi untuk mendeteksi pergerakan manusia atau objek berdasarkan perubahan sinyal inframerah di sekitarnya. Ketika sensor ini mendeteksi gerakan, ia akan mengeluarkan sinyal logika HIGH ke mikrokontroler. Sebaliknya, jika tidak ada gerakan, sensor akan memberikan sinyal LOW.

  • Sensor sentuh berfungsi sebagai sakelar digital yang aktif ketika disentuh oleh pengguna. Sensor ini mengirimkan sinyal logika HIGH saat disentuh dan LOW saat tidak ada interaksi.

Proses Kerja Rangkaian

  1. Saat Tidak Ada Gerakan dan Sentuhan:

    • Sensor PIR dalam kondisi LOW, menunjukkan bahwa tidak ada objek bergerak di sekitar.

    • Sensor sentuh juga dalam kondisi LOW, berarti tidak ada interaksi dari pengguna.

    • STM32 akan mematikan LED RGB dan buzzer, sehingga sistem tetap dalam keadaan diam.

  2. Saat Sensor PIR Mendeteksi Gerakan:

    • Sensor PIR mengirimkan sinyal HIGH ke STM32.

    • Mikrokontroler akan menyalakan LED merah sebagai indikasi adanya gerakan.

    • Buzzer tetap mati, karena hanya sensor PIR yang aktif.

  3. Saat Sensor Sentuh Diaktifkan oleh Pengguna:

    • Sensor sentuh mengirimkan sinyal HIGH ke STM32.

    • Mikrokontroler akan menyalakan LED biru dan mengaktifkan buzzer untuk memberikan alarm atau notifikasi suara.

  4. Jika Kedua Sensor Aktif Secara Bersamaan:

    • Jika sensor PIR mendeteksi gerakan dan sensor sentuh juga disentuh, maka STM32 akan menyalakan LED biru dan menghidupkan buzzer, tetapi LED merah tetap menyala sebagai tanda bahwa gerakan terdeteksi. dan juga akan menghasilkan warna Violet saat ditekan secara bersamaan

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(); // Inisialisasi HAL Library SystemClock_Config(); // Konfigurasi clock sistem MX_GPIO_Init(); // Inisialisasi GPIO 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, BLUE_Pin | RED_Pin | BUZZER_Pin, GPIO_PIN_RESET); if (pir_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); // menghidupkan LED merah HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_RESET); // mematikan Buzzer } if (touch_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_SET); // Menghidupkan LED biru HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); // menghidupkan Buzzer } HAL_Delay(100); // Menghindari pembacaan sensor cepat } } 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; 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. Kondisi[Kembali]

Buatlah rangkaian seperti gambar pada percobaan 8 dengan kondisi ketika PIR mendeteksi gerakan maka LED RGB menampilkan warna merah serta buzzer mati dan ketika Touch mendeteksi sentuhan LED RGB akan menampilkan warna biru serta buzzer aktif

6. Video Simulasi[Kembali]



7. Download File[Kembali]

Rangkaian Simulasi [Download]
Video Simulasi [Download]
Datasheet Resistor [Download]
Datasheet LED [Download]
Datasheet STM32F1038 [download]




Komentar

Postingan populer dari blog ini